diff options
| -rw-r--r-- | client.h | 11 | ||||
| -rw-r--r-- | dwl.c | 10 | 
2 files changed, 12 insertions, 9 deletions
| @@ -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)  { @@ -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) | 
