commit 4ae6d0f3873451306e1ef04d88e0fab4e2b04548
parent 2ef5abfb728bbf157641becfe0db4d6e3d57bca8
Author: Leonardo Hernández Hernández <leohdz172@protonmail.com>
Date: Thu, 16 Jun 2022 15:54:13 -0500
move ugglyness to client.h
Diffstat:
2 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/client.h b/client.h
@@ -231,6 +231,17 @@ client_min_size(Client *c, int *width, int *height)
*height = state->min_height;
}
+static inline void
+client_restack_surface(Client *c)
+{
+#ifdef XWAYLAND
+ if (client_is_x11(c))
+ wlr_xwayland_surface_restack(c->surface.xwayland, NULL,
+ XCB_STACK_MODE_ABOVE);
+#endif
+ return;
+}
+
static inline Client *
client_from_wlr_surface(struct wlr_surface *s)
{
diff --git a/dwl.c b/dwl.c
@@ -1129,6 +1129,7 @@ focusclient(Client *c, int lift)
wl_list_insert(&fstack, &c->flink);
selmon = c->mon;
c->isurgent = 0;
+ client_restack_surface(c);
for (i = 0; i < 4; i++)
wlr_scene_rect_set_color(c->border[i], focuscolor);
@@ -1169,15 +1170,6 @@ 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);
if (kb)