diff --git a/src/animation/client.h b/src/animation/client.h index 318d34cf..064b8799 100644 --- a/src/animation/client.h +++ b/src/animation/client.h @@ -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->geom; wlr_scene_node_set_position(&c->scene->node, c->geom.x, c->geom.y); - + client_apply_node_layer(c); client_get_clip(c, &clip); apply_border(c); apply_shield(c); diff --git a/src/mango.c b/src/mango.c index f62cc4b1..0e1f65c8 100644 --- a/src/mango.c +++ b/src/mango.c @@ -2114,6 +2114,7 @@ buttonpress(struct wl_listener *listener, void *data) { tmpc = grabc; grabc = NULL; start_drag_window = false; + client_apply_node_layer(tmpc); last_apply_drap_time = 0; if (tmpc->drag_to_tile && drag_tile_to_tile) { place_drag_tile_client(tmpc); @@ -4702,10 +4703,10 @@ void client_apply_node_layer(Client *c) { c->mon->layers_scene_tree[LyrTile]); } } else { - if (c->isfloating) { + if (c->isfloating && c == grabc) { wlr_scene_node_reparent(&c->scene->node, layers[c->isoverlay ? LyrOverlay : LyrTop]); - } else if (c->isfullscreen) { + } else if (c->isfullscreen || c->isfloating) { wlr_scene_node_reparent(&c->scene->node, c->mon->layers_scene_tree[LyrTop]); } else {