Commit Graph

18 Commits

Author SHA1 Message Date
079f41ce8a refactor: 从 core 中抽出跨模块契约建立 interface/common 模块分层
引入 interface/(零实现声明层)与 common/(共享 ADT 操作层),把跨模块
契约从 core 实现里抽出来,依赖方向回到单向(base ← interface ← common ←
各实现层)。docs/module-layering.org 记录完整方案与判定标准。

interface/(纯类型与多态接口声明,零 .c):
- types.h / event.h / backend.h 从 core 移入
- effect.h 新建(effect_t 从 plan.h 抽出)

common/(多实现层共用的自包含操作,.h + .c):
- event.{h,c}:event_reset / event_cleanup
- listeners.{h,c}:listeners 维护(add / cleanup);notify 留 core
- window.{h,c}:window_list + layer_props/metadata cleanup + window_classify_layer
- workspace.{h,c}:workspace_desc(从 wm_desc.h 拆出,改真实函数)

window 相关整理:
- window_layer_type_t 上浮 interface/types.h(common 的 classify 需要)
- window_classify_layer 移 common/window
- window_info_t 独立成 core/window_info.h(state/command 共享,不寄生)
- 删除 wm_desc.h,base/window_list 并入 common/window

全项目 include 路径同步更新
2026-06-25 03:00:30 +08:00
bf3de7fb92 style: 禁掉 clang-format 的 AlignConsecutiveAssignments 规则并重新格式化整个项目 2026-06-24 13:05:56 +08:00
b71b66921e refactor(window): 用更通用的尺寸提示(min/max size)替换 fixed_size 标记 2026-06-22 23:22:08 +08:00
b8cd40df9f feat(backend): 支持鼠标抓取功能 2026-06-20 01:06:30 +08:00
7a47f4d44d feat(backend): 添加光标支持 2026-06-20 00:59:13 +08:00
e9366b64e2 feat(backend): 添加创建 bar 窗口接口 2026-06-06 00:40:33 +08:00
c7399f014b fix(backend/X11): 修复按键抓取使用错误数组索引的 bug
window_grab_keys 中误用 keys (首元素)代替 key (当前元素)获取
keysym, 导致只有第一个按键能正确注册
2026-05-04 22:34:15 +08:00
d90cebe0c2 feat(core+backend/X11): 实现窗口边框管理和焦点跟随鼠标 2026-05-02 00:46:13 +08:00
a393308704 feat(core+backend/X11): 实现窗口状态变更(最大化/最小化/全屏) 2026-04-28 03:45:40 +08:00
722d3946c6 feat(core+backend/X11): 区分窗口销毁和撤销 2026-04-27 22:28:43 +08:00
f3b8be8cf1 feat(backend/X11): 实现按键抓取功能 2026-04-26 19:03:18 +08:00
fc68e75f82 refactor(backend/X11): 重构 effect 应用为延迟批量模式并添加 KILL_WINDOW 支持
- 添加 ZDWM_EFFECT_KILL_WINDOW 副作用和 WM_DELETE_WINDOW 协议支持
- 将 backend_apply_effect 从即时调用 X11 拆分为 merge + batch apply 两阶段:
  - 先收集 effect 到后端持有的列表
  - 再按 unmap(grab server) → map → kill → configure → focus 顺序统一提交
2026-04-23 04:37:34 +08:00
22cd362724 feat(backend/X11): 实现 backend_apply_effect 接口以提交 X11 副作用 2026-04-19 04:49:02 +08:00
2fc4b33359 style: 更新 .clang-format 规则并重新格式化所有源文件
- 重构模块使用新的代码风格
- 老代码 (src 目录下的代码) 继续使用之前的代码风格

通过在需要不同代码风格的目录下放对应 .clang-format 配置文件实现
2026-04-14 01:52:53 +08:00
0c7fdf08df backend: X11 后端 window 信息查询接口使用原始封装代替语义化封装
- 拆分 window_get_skip_taskbar / window_get_urgency /
  window_get_states / window_get_geometry_mode 为更底层的
  window_get_atom_array / window_get_wm_hints / atom_to_window_state
- window_get_fixed_size 改为输出参数风格
- 扁平化 window_map_request_event_t,内联原 window_props_t 和
  window_geometry_t 的字段
- window_props_t → window_layer_props_t,仅保留 layer 分类所需的
  types/states
2026-04-09 05:08:39 +08:00
3884d3fc50 backend: X11 后端添加窗口几何信息查询并修正错误语义
- 添加 window_get_geometry/window_get_fixed_size/window_get_geometry_mode
- window_get_atom_array 改为 bool 返回,区分 XCB 调用错误和空数据
- window_get_types/window_get_states 属性为空时返回 true 而非 false
- handle_map_request 重排操作顺序:错误检查提前,失败路径无内存泄漏
- 补充 _NET_WM_STATE_MAXIMIZED_VERT/HORZ atom 注册
2026-04-09 02:23:06 +08:00
0edb6ad6aa backend: X11 后端添加窗口属性和状态查询接口 2026-04-08 19:32:53 +08:00
9728fad871 backend: X11 后端添加获取窗口 metadata 信息方式 2026-04-07 03:16:51 +08:00