summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeonardo Hernández Hernández <leohdz172@proton.me>2024-06-23 14:42:50 -0600
committerLeonardo Hernández Hernández <leohdz172@proton.me>2024-06-24 13:32:03 -0600
commit13925eb1da8af2c1d23ee9d01efd03c3626081b2 (patch)
treec48ef6eb4bfd3f9944ab1b5412a2382036ffd6ef
parent4a7d1bebf5c706109c92bd0415ab62825a7556ee (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.h2
-rw-r--r--dwl.c5
2 files changed, 3 insertions, 4 deletions
diff --git a/client.h b/client.h
index 19861b9..42f225f 100644
--- a/client.h
+++ b/client.h
@@ -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
diff --git a/dwl.c b/dwl.c
index d48bf40..00e9cc1 100644
--- a/dwl.c
+++ b/dwl.c
@@ -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);