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 顺序统一提交
This commit is contained in:
2026-04-23 04:37:34 +08:00
parent 28ebb086b1
commit fc68e75f82
5 changed files with 213 additions and 55 deletions

View File

@@ -9,6 +9,7 @@ typedef enum effect_type_t {
ZDWM_EFFECT_MAP_WINDOW = 1,
ZDWM_EFFECT_UNMAP_WINDOW,
ZDWM_EFFECT_FOCUS_WINDOW,
ZDWM_EFFECT_KILL_WINDOW,
ZDWM_EFFECT_MOVE_WINDOW,
ZDWM_EFFECT_RESIZE_WINDOW,
ZDWM_EFFECT_CHANGE_BORDER_COLOR,
@@ -53,6 +54,7 @@ typedef struct effect_t {
effect_only_window_id_t map;
effect_only_window_id_t unmap;
effect_only_window_id_t focus;
effect_only_window_id_t kill;
effect_move_window_t move;
effect_resize_window_t resize;
effect_change_border_color_t change_border_color;