From 960846095f58bc75e89c5b46a9af7c95a5f87886 Mon Sep 17 00:00:00 2001 From: DreamMaoMao <2523610504@qq.com> Date: Tue, 23 Jun 2026 10:43:16 +0800 Subject: [PATCH] opt: Remove redundant code --- src/action/client.h | 16 +++++----------- src/dispatch/bind_define.h | 10 ---------- src/mango.c | 27 +-------------------------- 3 files changed, 6 insertions(+), 47 deletions(-) diff --git a/src/action/client.h b/src/action/client.h index c86f67cf..85ab1aaf 100644 --- a/src/action/client.h +++ b/src/action/client.h @@ -179,7 +179,7 @@ void client_focus_group_member(Client *c) { void client_check_tab_node_visible(Client *c) { - if (!c || c->iskilling || !c->mon) + if (!c || !c->mon) return; Client *head = c; @@ -206,9 +206,6 @@ void client_raise_group(Client *c) { if (!c || !c->mon) return; - if (!c->group_prev && !c->group_next) - return; - Client *head = c; while (head->group_prev) head = head->group_prev; @@ -217,17 +214,14 @@ void client_raise_group(Client *c) { while (cur) { if (cur->group_bar) { wlr_scene_node_raise_to_top(&cur->group_bar->scene_buffer->node); - wlr_scene_node_raise_to_top(&cur->scene->node); } + wlr_scene_node_raise_to_top(&cur->scene->node); cur = cur->group_next; } } void client_reparent_group(Client *c) { - if (!c || !c->group_bar) - return; - - if (!c->group_prev && !c->group_next) + if (!c || !c->mon) return; int32_t layer = c->isoverlay ? LyrOverlay @@ -244,8 +238,8 @@ void client_reparent_group(Client *c) { if (cur->group_bar) { wlr_scene_node_reparent(&cur->group_bar->scene_buffer->node, layers[layer]); - wlr_scene_node_reparent(&cur->scene->node, layers[layer]); } + wlr_scene_node_reparent(&cur->scene->node, layers[layer]); cur = cur->group_next; } } @@ -268,7 +262,7 @@ void client_set_group_mon(Client *c, Monitor *m) { Client *cur = head; while (cur) { - cur->mon = m; + client_change_mon(cur, m); cur = cur->group_next; } } \ No newline at end of file diff --git a/src/dispatch/bind_define.h b/src/dispatch/bind_define.h index 14a66623..ab13918b 100644 --- a/src/dispatch/bind_define.h +++ b/src/dispatch/bind_define.h @@ -1555,16 +1555,6 @@ int32_t toggleoverlay(const Arg *arg) { c->isoverlay ^= 1; - if (c->isoverlay) { - wlr_scene_node_reparent(&c->scene->node, layers[LyrOverlay]); - wlr_scene_node_raise_to_top(&c->scene->node); - } else if (client_should_overtop(c) && c->isfloating) { - wlr_scene_node_reparent(&c->scene->node, layers[LyrTop]); - } else { - wlr_scene_node_reparent(&c->scene->node, - layers[c->isfloating ? LyrTop : LyrTile]); - } - client_reparent_group(c); setborder_color(c); return 0; diff --git a/src/mango.c b/src/mango.c index b839f9aa..5f4b2855 100644 --- a/src/mango.c +++ b/src/mango.c @@ -942,6 +942,7 @@ static void global_draw_group_bar(Client *c, int32_t x, int32_t y, int32_t width, int32_t height); static void client_reparent_group(Client *c); +static void client_change_mon(Client *c, Monitor *m); #include "data/static_keymap.h" #include "dispatch/bind_declare.h" @@ -2760,10 +2761,8 @@ void closemon(Monitor *m) { c->foreign_toplevel = NULL; } - c->mon = NULL; client_set_group_mon(c, NULL); } else { - client_change_mon(c, selmon); client_set_group_mon(c, selmon); } // record the oldmonname which is used to restore @@ -3870,7 +3869,6 @@ void focusclient(Client *c, int32_t lift) { /* Raise client in stacking order if requested */ if (c && lift) { client_raise_group(c); - wlr_scene_node_raise_to_top(&c->scene->node); // 将视图提升到顶层 } if (c && client_surface(c) == old_keyboard_focus_surface && selmon && @@ -5549,15 +5547,6 @@ setfloating(Client *c, int32_t floating) { } } - if (c->isoverlay) { - wlr_scene_node_reparent(&c->scene->node, layers[LyrOverlay]); - } else if (client_should_overtop(c) && c->isfloating) { - wlr_scene_node_reparent(&c->scene->node, layers[LyrTop]); - } else { - wlr_scene_node_reparent(&c->scene->node, - layers[c->isfloating ? LyrTop : LyrTile]); - } - client_reparent_group(c); if (c->isfloating) { @@ -5653,10 +5642,6 @@ void setmaximizescreen(Client *c, int32_t maximizescreen, bool rearrange) { setfloating(c, 1); } - wlr_scene_node_reparent(&c->scene->node, - layers[c->ismaximizescreen ? LyrMaximize - : c->isfloating ? LyrTop - : LyrTile]); client_reparent_group(c); if (!c->force_fakemaximize && !c->ismaximizescreen) { @@ -5717,16 +5702,6 @@ void setfullscreen(Client *c, int32_t fullscreen, setfloating(c, 1); } - if (c->isoverlay) { - wlr_scene_node_reparent(&c->scene->node, layers[LyrOverlay]); - } else if (client_should_overtop(c) && c->isfloating) { - wlr_scene_node_reparent(&c->scene->node, layers[LyrTop]); - } else { - wlr_scene_node_reparent( - &c->scene->node, - layers[fullscreen || c->isfloating ? LyrTop : LyrTile]); - } - client_reparent_group(c); if (rearrange)