diff --git a/src/client/client.h b/src/client/client.h index e55184c..a821e5e 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -330,6 +330,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 307b4fb..4e2571d 100644 --- a/src/mango.c +++ b/src/mango.c @@ -3364,6 +3364,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 @@ -4273,6 +4274,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);