feat(core+backend/X11): 区分窗口销毁和撤销

This commit is contained in:
2026-04-27 22:28:43 +08:00
parent 8d838135d6
commit 722d3946c6
7 changed files with 76 additions and 7 deletions

View File

@@ -9,6 +9,7 @@
#include <xcb/randr.h>
#include <xcb/xcb.h>
#include <xcb/xcb_aux.h>
#include <xcb/xcb_icccm.h>
#include <xcb/xcb_keysyms.h>
#include <xcb/xfixes.h>
#include <xcb/xinerama.h>
@@ -494,6 +495,13 @@ static void backend_merge_effects(
case ZDWM_EFFECT_KILL_WINDOW:
window_list_push(&backend->kill, e->as.kill.window);
break;
case ZDWM_EFFECT_WITHDRAW_WINDOW:
window_set_icccm_wm_state(
backend->conn,
e->as.withdraw.window,
XCB_ICCCM_WM_STATE_WITHDRAWN
);
break;
case ZDWM_EFFECT_MOVE_WINDOW: {
window_configure_t *cfg =
find_or_push_configure(configs, e->as.move.window);