From c02add75538e5b3e82534599d5d0732bff8e044d Mon Sep 17 00:00:00 2001 From: DreamMaoMao <2523610504@qq.com> Date: Sat, 23 Aug 2025 17:18:53 +0800 Subject: [PATCH] opt: set minimized state to xsurface --- src/client/client.h | 11 +++++++++++ src/mango.c | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/client/client.h b/src/client/client.h index 2096e0f..45abbab 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -328,6 +328,17 @@ static inline uint32_t client_set_size(Client *c, uint32_t width, (int32_t)height); } +static inline void client_set_minimized(Client *c, bool minimized) { +#ifdef XWAYLAND + if (client_is_x11(c)) { + wlr_xwayland_surface_set_minimized(c->surface.xwayland, minimized); + return; + } +#endif + + return; +} + static inline void client_set_tiled(Client *c, uint32_t edges) { struct wlr_xdg_toplevel *toplevel; #ifdef XWAYLAND diff --git a/src/mango.c b/src/mango.c index 5da5770..6262e39 100644 --- a/src/mango.c +++ b/src/mango.c @@ -3448,6 +3448,7 @@ void set_minized(Client *c) { wlr_foreign_toplevel_handle_v1_set_minimized(c->foreign_toplevel, true); wl_list_remove(&c->link); // 从原来位置移除 wl_list_insert(clients.prev, &c->link); // 插入尾部 + client_set_minimized(c, true); } void // 0.5 custom @@ -4337,6 +4338,7 @@ void show_hide_client(Client *c) { tag_client(&(Arg){.ui = target}, c); // c->tags = c->oldtags; c->isminied = 0; + client_set_minimized(c, false); wlr_foreign_toplevel_handle_v1_set_minimized(c->foreign_toplevel, false); focusclient(c, 1); wlr_foreign_toplevel_handle_v1_set_activated(c->foreign_toplevel, true);