diff options
author | Leonardo Hernández Hernández <leohdz172@proton.me> | 2024-06-23 14:42:50 -0600 |
---|---|---|
committer | Leonardo Hernández Hernández <leohdz172@proton.me> | 2024-06-24 13:32:03 -0600 |
commit | 13925eb1da8af2c1d23ee9d01efd03c3626081b2 (patch) | |
tree | c48ef6eb4bfd3f9944ab1b5412a2382036ffd6ef | |
parent | 4a7d1bebf5c706109c92bd0415ab62825a7556ee (diff) |
correctly report position to xwayland clients
Previously we didn't take into account their borders requiring us to add
`borderpx` to override_redirect clients.
Fixes: https://codeberg.org/dwl/dwl/issues/651
-rw-r--r-- | client.h | 2 | ||||
-rw-r--r-- | dwl.c | 5 |
2 files changed, 3 insertions, 4 deletions
@@ -350,7 +350,7 @@ client_set_size(Client *c, uint32_t width, uint32_t height) #ifdef XWAYLAND if (client_is_x11(c)) { wlr_xwayland_surface_configure(c->surface.xwayland, - c->geom.x, c->geom.y, width, height); + c->geom.x + c->bw, c->geom.y + c->bw, width, height); return 0; } #endif @@ -1651,8 +1651,7 @@ mapnotify(struct wl_listener *listener, void *data) if (client_is_unmanaged(c)) { /* Unmanaged clients always are floating */ wlr_scene_node_reparent(&c->scene->node, layers[LyrFloat]); - wlr_scene_node_set_position(&c->scene->node, c->geom.x + borderpx, - c->geom.y + borderpx); + wlr_scene_node_set_position(&c->scene->node, c->geom.x, c->geom.y); if (client_wants_focus(c)) { focusclient(c, 1); exclusive_focus = c; @@ -3038,7 +3037,7 @@ createnotifyx11(struct wl_listener *listener, void *data) c = xsurface->data = ecalloc(1, sizeof(*c)); c->surface.xwayland = xsurface; c->type = X11; - c->bw = borderpx; + c->bw = client_is_unmanaged(c) ? 0 : borderpx; /* Listen to the various events it can emit */ LISTEN(&xsurface->events.associate, &c->associate, associatex11); |