From c1b48567e16295662668b69c47d21667ee37f5c3 Mon Sep 17 00:00:00 2001 From: DreamMaoMao <2523610504@qq.com> Date: Mon, 5 May 2025 23:25:00 +0800 Subject: [PATCH] opt: always give priority to determining whether to set overlay layer for overlay window --- src/maomao.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/maomao.c b/src/maomao.c index b0a9375..f940957 100644 --- a/src/maomao.c +++ b/src/maomao.c @@ -5214,8 +5214,12 @@ setfloating(Client *c, int floating) { if (!c || !c->mon || !client_surface(c)->mapped || c->iskilling) return; - wlr_scene_node_reparent(&c->scene->node, - layers[c->isfloating ? LyrFloat : LyrTile]); + if(c->isoverlay) { + wlr_scene_node_reparent(&c->scene->node, layers[LyrOverlay]); + } else { + wlr_scene_node_reparent(&c->scene->node, + layers[c->isfloating ? LyrFloat : LyrTile]); + } target_box = c->geom; @@ -5329,9 +5333,14 @@ void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带 return; client_set_fullscreen(c, fullscreen); - wlr_scene_node_reparent(&c->scene->node, layers[fullscreen ? LyrFloat - : c->isfloating ? LyrFloat - : LyrTile]); + + if(c->isoverlay) { + wlr_scene_node_reparent(&c->scene->node, layers[LyrOverlay]); + } else { + wlr_scene_node_reparent(&c->scene->node, layers[fullscreen ? LyrFloat + : c->isfloating ? LyrFloat + : LyrTile]); + } if (fullscreen) { if (c->isfloating)