diff options
| author | Guido Cella <guido@guidocella.xyz> | 2024-01-28 09:06:20 +0100 | 
|---|---|---|
| committer | Leonardo Hernández Hernández <leohdz172@proton.me> | 2024-02-05 15:59:46 -0600 | 
| commit | 17c5cbbf7b6c3a5373f46e6fb6e88daada325479 (patch) | |
| tree | 7d89383bb4a07333cf39a5791ea7daa788c4f86d | |
| parent | 45e3694fc8e91642cf970bd1586bd1a16dbc8a31 (diff) | |
make XWayland clients inherit tags and monitors
Revert 3213088 because the linked bug can no longer be reproduced with
wlroots 0.17, and update client_get_parent() so it doesn't segfault with
XWayland surfaces. This also allows reusing the p variable in the next
commit.
Diffstat (limited to '')
| -rw-r--r-- | client.h | 7 | ||||
| -rw-r--r-- | dwl.c | 3 | 
2 files changed, 6 insertions, 4 deletions
| @@ -172,8 +172,11 @@ client_get_parent(Client *c)  {  	Client *p = NULL;  #ifdef XWAYLAND -	if (client_is_x11(c) && c->surface.xwayland->parent) -		toplevel_from_wlr_surface(c->surface.xwayland->parent->surface, &p, NULL); +    if (client_is_x11(c)) { +        if (c->surface.xwayland->parent) +            toplevel_from_wlr_surface(c->surface.xwayland->parent->surface, &p, NULL); +        return p; +    }  #endif  	if (c->surface.xdg->toplevel->parent)  		toplevel_from_wlr_surface(c->surface.xdg->toplevel->parent->base->surface, &p, NULL); @@ -1542,8 +1542,7 @@ mapnotify(struct wl_listener *listener, void *data)  	 * we always consider floating, clients that have parent and thus  	 * we set the same tags and monitor than its parent, if not  	 * try to apply rules for them */ -	/* TODO: https://github.com/djpohly/dwl/pull/334#issuecomment-1330166324 */ -	if (c->type == XDGShell && (p = client_get_parent(c))) { +	if ((p = client_get_parent(c))) {  		c->isfloating = 1;  		setmon(c, p->mon, p->tags);  	} else { | 
