opt: only grabc floating window set to global scene

This commit is contained in:
DreamMaoMao 2026-02-27 12:01:56 +08:00
parent 2328f12fbb
commit c2ed0a48d8
2 changed files with 4 additions and 3 deletions

View file

@ -768,7 +768,7 @@ void resize(Client *c, struct wlr_box geo, int32_t interact) {
c->animainit_geom = c->current = c->pending = c->animation.current = c->animainit_geom = c->current = c->pending = c->animation.current =
c->geom; c->geom;
wlr_scene_node_set_position(&c->scene->node, c->geom.x, c->geom.y); wlr_scene_node_set_position(&c->scene->node, c->geom.x, c->geom.y);
client_apply_node_layer(c);
client_get_clip(c, &clip); client_get_clip(c, &clip);
apply_border(c); apply_border(c);
apply_shield(c); apply_shield(c);

View file

@ -2114,6 +2114,7 @@ buttonpress(struct wl_listener *listener, void *data) {
tmpc = grabc; tmpc = grabc;
grabc = NULL; grabc = NULL;
start_drag_window = false; start_drag_window = false;
client_apply_node_layer(tmpc);
last_apply_drap_time = 0; last_apply_drap_time = 0;
if (tmpc->drag_to_tile && drag_tile_to_tile) { if (tmpc->drag_to_tile && drag_tile_to_tile) {
place_drag_tile_client(tmpc); place_drag_tile_client(tmpc);
@ -4702,10 +4703,10 @@ void client_apply_node_layer(Client *c) {
c->mon->layers_scene_tree[LyrTile]); c->mon->layers_scene_tree[LyrTile]);
} }
} else { } else {
if (c->isfloating) { if (c->isfloating && c == grabc) {
wlr_scene_node_reparent(&c->scene->node, wlr_scene_node_reparent(&c->scene->node,
layers[c->isoverlay ? LyrOverlay : LyrTop]); layers[c->isoverlay ? LyrOverlay : LyrTop]);
} else if (c->isfullscreen) { } else if (c->isfullscreen || c->isfloating) {
wlr_scene_node_reparent(&c->scene->node, wlr_scene_node_reparent(&c->scene->node,
c->mon->layers_scene_tree[LyrTop]); c->mon->layers_scene_tree[LyrTop]);
} else { } else {