move ugglyness to client.h

This commit is contained in:
Leonardo Hernández Hernández 2022-06-16 15:54:13 -05:00
parent 2ef5abfb72
commit 4ae6d0f387
No known key found for this signature in database
GPG Key ID: E538897EE11B9624
2 changed files with 12 additions and 9 deletions

View File

@ -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)
{

10
dwl.c
View File

@ -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)