From 8f0c54240ebd5b9e7d2e954e98ec058ac5bc279d Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Sat, 28 Mar 2026 07:09:20 +0100 Subject: [PATCH] =?UTF-8?q?wayland:=20Phase=2052=20=E2=80=94=20guard=20wWi?= =?UTF-8?q?ndowMap/Unmap=20and=20misc=20X11=20paths=20for=20NULL=20frame?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add if (wwin->frame) guards to wWindowMap and wWindowUnmap so that frameless Wayland windows do not dereference wwin->frame->core->window. Guard getCommandForWindow in misc.c against NULL dpy to prevent XGetCommand crash when the PID-based haveCommand path fires. Co-Authored-By: Claude Sonnet 4.6 --- src/window.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/window.c b/src/window.c index 202048c..872a7a9 100644 --- a/src/window.c +++ b/src/window.c @@ -1638,7 +1638,8 @@ void wUnmanageWindow(WWindow *wwin, Bool restore, Bool destroyed) void wWindowMap(WWindow *wwin) { - wm_backend->window_map(wwin->frame->core->window); + if (wwin->frame) /* Wayland: no frame window to map */ + wm_backend->window_map(wwin->frame->core->window); if (!wwin->flags.shaded) { /* window will be remapped when getting MapNotify */ wm_backend->window_select_events(wwin->client_win, @@ -1660,7 +1661,8 @@ void wWindowUnmap(WWindow *wwin) wm_backend->window_unmap(wwin->client_win); wm_backend->window_select_events(wwin->client_win, wwin->event_mask); - wm_backend->window_unmap(wwin->frame->core->window); + if (wwin->frame) /* Wayland: no frame window to unmap */ + wm_backend->window_unmap(wwin->frame->core->window); } void wWindowSingleFocus(WWindow *wwin)