diff --git a/src/backend/wayland/wl_backend.c b/src/backend/wayland/wl_backend.c index 0935393..03c1997 100644 --- a/src/backend/wayland/wl_backend.c +++ b/src/backend/wayland/wl_backend.c @@ -5338,6 +5338,13 @@ wl_window_map(WNativeWindow win) /* Frame buffer: enable its scene node and children. */ struct wl_frame_buf *fb = frame_buf_find(win); if (fb && fb->scene_buf) { + /* If this is a child, only enable if parent is enabled */ + if (fb->parent_id) { + struct wl_frame_buf *parent = frame_buf_find(fb->parent_id); + if (parent && parent->scene_buf && + !parent->scene_buf->node.enabled) + return; /* parent not visible yet */ + } wlr_scene_node_set_enabled(&fb->scene_buf->node, true); /* Also enable children */ struct wl_frame_buf *child;