diff --git a/src/backend/wayland/wl_client.c b/src/backend/wayland/wl_client.c index fa9eaca..0a75a2b 100644 --- a/src/backend/wayland/wl_client.c +++ b/src/backend/wayland/wl_client.c @@ -320,8 +320,15 @@ void wl_view_scene_node_set_enabled(unsigned long id, int enabled) { struct wl_frame_buf *fb = frame_buf_find((WNativeWindow)id); - if (fb && fb->scene_buf) + if (fb && fb->scene_buf) { wlr_scene_node_set_enabled(&fb->scene_buf->node, !!enabled); + return; + } + /* Also handle WINGs client toplevels (popup menus) that have + * their own xdg_surface with a scene_node but no wl_frame_buf. */ + struct wl_toplevel_view *v = wl_find_view_by_id((WNativeWindow)id); + if (v && v->scene_node) + wlr_scene_node_set_enabled(&v->scene_node->node, !!enabled); }