summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuido Cella <guido@guidocella.xyz>2024-01-28 09:06:20 +0100
committerLeonardo Hernández Hernández <leohdz172@proton.me>2024-02-05 15:59:46 -0600
commit17c5cbbf7b6c3a5373f46e6fb6e88daada325479 (patch)
tree7d89383bb4a07333cf39a5791ea7daa788c4f86d
parent45e3694fc8e91642cf970bd1586bd1a16dbc8a31 (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.
-rw-r--r--client.h7
-rw-r--r--dwl.c3
2 files changed, 6 insertions, 4 deletions
diff --git a/client.h b/client.h
index 0753da8..8a379d0 100644
--- a/client.h
+++ b/client.h
@@ -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);
diff --git a/dwl.c b/dwl.c
index f407477..b04b66a 100644
--- a/dwl.c
+++ b/dwl.c
@@ -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 {