From 6a371077161dca163dc391108efd71a639685fb0 Mon Sep 17 00:00:00 2001 From: lkn Date: Sun, 7 Jun 2026 09:49:09 +0200 Subject: [PATCH] wl_window_resize: update backing store after resizing pixman image When wl_window_resize frees the old pixman image and creates a new one, it must call W_RegisterBacking to update the backing store. Otherwise W_GetViewBacking returns the freed old image pointer, causing a crash when WMDrawString (via wl_font_resolve_drawable) tries to draw into the stale backing. This manifests on workspace name badge display in direct render mode. --- src/backend/wayland/wl_window.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/backend/wayland/wl_window.c b/src/backend/wayland/wl_window.c index 8066d0b..5bf93f5 100644 --- a/src/backend/wayland/wl_window.c +++ b/src/backend/wayland/wl_window.c @@ -263,6 +263,7 @@ void wl_window_resize(WNativeWindow win, int w, int h) fb->height = h; fb->base.width = w; fb->base.height = h; + W_RegisterBacking(fb->id, fb->image); /* Update scene graph's cached buffer size for hit-testing. */ if (fb->scene_buf) wlr_scene_buffer_set_dest_size(fb->scene_buf, w, h);