Commit Graph

24 Commits

Author SHA1 Message Date
9275d14c5f feat(runtime): 启动时扫描并接管已有窗口
从 handle_map_request 中提取 populate_window_event 供复用,
新增 backend_scan_windows 扫描 X11 根窗口子树,
runtime_scan 将扫描到的窗口走完整 policy 流程纳入管理。
route_map_request 增加 override_redirect 过滤。
2026-05-07 06:36:58 +08:00
d90cebe0c2 feat(core+backend/X11): 实现窗口边框管理和焦点跟随鼠标 2026-05-02 00:46:13 +08:00
1485400b4c refactor(core+backend/X11): 将修改窗口几何属性合并到 CONFIGURE_WINDOW 中
将 MOVE/RESIZE/BORDER_WIDTH 三个效果合并进 CONFIGURE_WINDOW 中,通过
changed_fields 掩码提取有效数据
2026-04-29 00:39:19 +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
c93e78bbd6 feat(core+backend/X11): 完成快捷键绑定和触发功能 2026-04-27 01:09:23 +08:00
e394ed78a5 fix(backend/X11): 释放 backend->map 所持有的内存 2026-04-27 00:43:09 +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
1e3a571619 refactor(backend/X11): 合并批量 effect 中的 focus 操作
一批 effect 中可能包含多个 FOCUS_WINDOW,但最终只有一个窗口能获得焦点,
延迟到循环结束后只执行最后一次 focus 调用
2026-04-22 19:50:26 +08:00
92dcec0e79 feat(backend/X11): 添加 _NET_SUPPORTING_WM_CHECK 兼容窗口 2026-04-19 05:39:31 +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
7b5404e8e0 refactor(backend/x11): 用 X-macro 统一 atom 列表的声明和初始化 2026-04-14 01:35:25 +08:00
6561b16be0 feat(core): 引入 plan/effect 执行骨架
新增 plan/effect 数据结构与基础操作
在 runtime 中接入 event -> command_buffer -> plan -> backend 流程
补齐 policy/backend 接口并同步更新测试构建
2026-04-13 05:56:31 +08:00
11601c75bd backend: X11 后端函数 detect_monitor_by_randr 中使用 p_strndup 替代 strndu 2026-04-11 06:00:08 +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
196dab9bb3 事件循环框架 2026-04-01 16:08:01 +08:00
67f0c169f5 utils 按作用拆成 log/macros/memory 三个模块 2026-03-23 19:05:39 +08:00
34017fb5da 调整数据类型和接口函数命名规范 2026-03-23 12:42:19 +08:00
ac22a2b529 feat: 添加屏幕去重功能并调整测试用例目录结构 2026-03-22 04:18:59 +08:00
5d89caff0a 调整 X11 backend 目录结构 2026-03-21 03:01:27 +08:00