fix: miss shield node in overview

This commit is contained in:
DreamMaoMao 2026-06-19 16:13:34 +08:00
parent 9c6bcdc71f
commit a9831e0661
2 changed files with 5 additions and 1 deletions

View file

@ -215,7 +215,6 @@ void scene_buffer_apply_effect(struct wlr_scene_buffer *buffer, int32_t sx,
surface_height); surface_height);
} }
} }
// TODO: blur set, opacity set
if (wlr_xdg_popup_try_from_wlr_surface(surface) != NULL) if (wlr_xdg_popup_try_from_wlr_surface(surface) != NULL)
return; return;

View file

@ -6317,6 +6317,9 @@ void overview_backup_surface(Client *c) {
wlr_scene_tree_snapshot(&c->scene_surface->node, c->scene); wlr_scene_tree_snapshot(&c->scene_surface->node, c->scene);
wlr_scene_node_set_enabled(&c->overview_scene_surface->node, false); wlr_scene_node_set_enabled(&c->overview_scene_surface->node, false);
wlr_scene_node_set_enabled(&c->scene_surface->node, true); wlr_scene_node_set_enabled(&c->scene_surface->node, true);
wlr_scene_node_reparent(&c->shield->node, c->scene_surface);
wlr_scene_node_raise_to_top(&c->shield->node);
} }
// 普通视图切换到overview时保存窗口的旧状态 // 普通视图切换到overview时保存窗口的旧状态
@ -6362,6 +6365,8 @@ void overview_restore(Client *c, const Arg *arg) {
c->is_restoring_from_ov = (arg->ui & c->tags & TAGMASK) == 0 ? true : false; c->is_restoring_from_ov = (arg->ui & c->tags & TAGMASK) == 0 ? true : false;
if (c->overview_scene_surface) { if (c->overview_scene_surface) {
wlr_scene_node_reparent(&c->shield->node, c->overview_scene_surface);
wlr_scene_node_raise_to_top(&c->shield->node);
wlr_scene_node_destroy(&c->scene_surface->node); wlr_scene_node_destroy(&c->scene_surface->node);
c->scene_surface = c->overview_scene_surface; c->scene_surface = c->overview_scene_surface;
c->overview_scene_surface = NULL; c->overview_scene_surface = NULL;