From 1ab108f7aa15e65505d485ef0af19b73b928987d Mon Sep 17 00:00:00 2001 From: Ollie Date: Sat, 23 May 2026 16:17:18 +0200 Subject: [PATCH] WINGs/wevent: fix NULL toplevel crash on Wayland expose dispatch W_TopLevelOfView returns NULL for views without a topLevel ancestor (e.g. geometry display widgets parented directly to root). On X11 this never triggered because expose events only arrived for mapped windows with proper widget hierarchy. On Wayland, wl_redisplay synthesizes expose events for any view, exposing the NULL case. Fix: fall back to the view itself when no topLevel ancestor exists. --- WINGs/wevent.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WINGs/wevent.c b/WINGs/wevent.c index 5f98d8e..93dab28 100644 --- a/WINGs/wevent.c +++ b/WINGs/wevent.c @@ -212,6 +212,8 @@ int WMHandleEvent(WMEvent * event) view->screen->lastEventTime = getEventTime(view->screen, event); toplevel = W_TopLevelOfView(view); + if (!toplevel) + toplevel = view; if (mask & (KeyPressMask | KeyReleaseMask)) { W_View *focused = W_FocusedViewOfToplevel(toplevel);