summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeonardo Hernández Hernández <leohdz172@protonmail.com>2022-04-03 17:18:05 -0500
committerLeonardo Hernández Hernández <leohdz172@protonmail.com>2022-04-29 17:45:02 -0500
commit3a4b7d104ff8bfc14862b7e41bcacb35677306a4 (patch)
tree4c7094e052d8f8e1329891122cc678f6ecd4f196
parentd071a899f3b302f3fbaa85c378d0854b7fa39e8e (diff)
restack xwayland surface on focusclient()
-rw-r--r--dwl.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/dwl.c b/dwl.c
index 0628bfb..b675b67 100644
--- a/dwl.c
+++ b/dwl.c
@@ -1135,6 +1135,15 @@ focusclient(Client *c, int lift)
return;
}
+#ifdef XWAYLAND
+ /* This resolves an issue where the last spawned xwayland client
+ * receives all pointer activity.
+ */
+ if (c->type == X11Managed)
+ wlr_xwayland_surface_restack(c->surface.xwayland, NULL,
+ XCB_STACK_MODE_ABOVE);
+#endif
+
/* Have a client, so focus its top-level wlr_surface */
kb = wlr_seat_get_keyboard(seat);
wlr_seat_keyboard_notify_enter(seat, client_surface(c),