From 334bbe6f0f5e4f77789b42ac9e5607d5076aef1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Hern=C3=A1ndez=20Hern=C3=A1ndez?= Date: Sat, 10 Aug 2024 10:39:25 -0600 Subject: [PATCH] fix potential crash in configurex11() We can't call resize() on unmanaged clients because they don't have borders and resize() requires them. Fixes: 94f4ead7dad89433e6087dc19950738c64bbed05 --- dwl.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/dwl.c b/dwl.c index 82a01d8..d28e9f1 100644 --- a/dwl.c +++ b/dwl.c @@ -3089,8 +3089,13 @@ configurex11(struct wl_listener *listener, void *data) event->x, event->y, event->width, event->height); return; } - if ((c->isfloating && c != grabc) - || client_is_unmanaged(c) || !c->mon->lt[c->mon->sellt]->arrange) + if (client_is_unmanaged(c)) { + wlr_scene_node_set_position(&c->scene->node, event->x, event->y); + wlr_xwayland_surface_configure(c->surface.xwayland, + event->x, event->y, event->width, event->height); + return; + } + if ((c->isfloating && c != grabc) || !c->mon->lt[c->mon->sellt]->arrange) resize(c, (struct wlr_box){.x = event->x - c->bw, .y = event->y - c->bw, .width = event->width + c->bw * 2, .height = event->height + c->bw * 2}, 0); else