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
This commit is contained in:
Leonardo Hernández Hernández
2024-06-23 14:42:50 -06:00
parent 4a7d1bebf5
commit 13925eb1da
2 changed files with 3 additions and 4 deletions

5
dwl.c
View File

@@ -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);