From f8f908d8b0b88eaac639dfc295e950233dae24d6 Mon Sep 17 00:00:00 2001 From: DreamMaoMao <2523610504@qq.com> Date: Fri, 7 Mar 2025 12:21:34 +0800 Subject: [PATCH] fix: avoid to activate swallowing window by foreight toplevel --- maomao.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/maomao.c b/maomao.c index 220d5b0..6886017 100644 --- a/maomao.c +++ b/maomao.c @@ -2967,6 +2967,8 @@ void focusclient(Client *c, int lift) { if (locked) return; + if (c && !client_surface(c)->mapped) + return; if (c && c->iskilling) return; @@ -4735,6 +4737,10 @@ void show_hide_client(Client *c) { void handle_foreign_activate_request(struct wl_listener *listener, void *data) { Client *c = wl_container_of(listener, c, foreign_activate_request); unsigned int target; + + if (c && c->swallowing) + return; + if (c && !c->isminied && c == selmon->sel) { set_minized(c); return; @@ -4761,6 +4767,10 @@ void handle_foreign_fullscreen_request(struct wl_listener *listener, void handle_foreign_close_request(struct wl_listener *listener, void *data) { Client *c = wl_container_of(listener, c, foreign_close_request); + + if (c && c->swallowing) + return; + if (c) { pending_kill_client(c); }