From 69e994c37a8a691385ced80d6afebd0230ce9ff3 Mon Sep 17 00:00:00 2001 From: DreamMaoMao <2523610504@qq.com> Date: Mon, 22 Jun 2026 09:59:21 +0800 Subject: [PATCH] opt: optimize overlay layer set for group --- src/action/client.h | 14 ++++++++------ src/dispatch/bind_define.h | 2 ++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/action/client.h b/src/action/client.h index 5b0be9d8..41ca0663 100644 --- a/src/action/client.h +++ b/src/action/client.h @@ -126,9 +126,10 @@ void client_add_tab_bar_node(Client *c) { MangoCustomDecorate->node_data = c; MangoCustomDecorate->node_type = MANGO_TITLE_NODE; MangoCustomDecorate->type = CustomDecorate; - uint32_t layer = c->isfloating || c->isfullscreen ? LyrTop - : c->ismaximizescreen ? LyrMaximize - : LyrTile; + uint32_t layer = c->isoverlay ? LyrOverlay + : c->isfloating || c->isfullscreen ? LyrTop + : c->ismaximizescreen ? LyrMaximize + : LyrTile; c->tab_bar_node = mango_tab_bar_node_create( MangoCustomDecorate, layers[layer], config.tabdata, 0, 0); @@ -230,9 +231,10 @@ void client_reparent_group(Client *c) { if (!c->group_prev && !c->group_next) return; - int32_t layer = c->isfloating || c->isfullscreen ? LyrTop - : c->ismaximizescreen ? LyrMaximize - : LyrTile; + int32_t layer = c->isoverlay ? LyrOverlay + : c->isfloating || c->isfullscreen ? LyrTop + : c->ismaximizescreen ? LyrMaximize + : LyrTile; Client *head = c; while (head->group_prev) diff --git a/src/dispatch/bind_define.h b/src/dispatch/bind_define.h index 424cf7f6..b8b142ae 100644 --- a/src/dispatch/bind_define.h +++ b/src/dispatch/bind_define.h @@ -1541,6 +1541,8 @@ int32_t toggleoverlay(const Arg *arg) { wlr_scene_node_reparent(&c->scene->node, layers[c->isfloating ? LyrTop : LyrTile]); } + + client_reparent_group(c); setborder_color(c); return 0; }