actually move unmanaged clients in configurex11()

only calling wlr_xwayland_surface_configure() may be not enough because we also
need to move the scene node in order to make effective the configure
This commit is contained in:
Leonardo Hernández Hernández 2024-08-08 14:38:43 -06:00
parent bb21ecda30
commit 94f4ead7da
No known key found for this signature in database
GPG Key ID: E538897EE11B9624

7
dwl.c
View File

@ -3084,14 +3084,13 @@ configurex11(struct wl_listener *listener, void *data)
{ {
Client *c = wl_container_of(listener, c, configure); Client *c = wl_container_of(listener, c, configure);
struct wlr_xwayland_surface_configure_event *event = data; struct wlr_xwayland_surface_configure_event *event = data;
/* This also handles "unmanaged" clients (because we do not assign if (!client_surface(c) || !client_surface(c)->mapped) {
* them a monitor) */
if (!c->mon) {
wlr_xwayland_surface_configure(c->surface.xwayland, wlr_xwayland_surface_configure(c->surface.xwayland,
event->x, event->y, event->width, event->height); event->x, event->y, event->width, event->height);
return; return;
} }
if ((c->isfloating && c != grabc) || !c->mon->lt[c->mon->sellt]->arrange) if ((c->isfloating && c != grabc)
|| client_is_unmanaged(c) || !c->mon->lt[c->mon->sellt]->arrange)
resize(c, (struct wlr_box){.x = event->x, .y = event->y, resize(c, (struct wlr_box){.x = event->x, .y = event->y,
.width = event->width + c->bw * 2, .height = event->height + c->bw * 2}, 0); .width = event->width + c->bw * 2, .height = event->height + c->bw * 2}, 0);
else else