diff --git a/src/view.c b/src/view.c index f9dd3e0b..250ac1ab 100644 --- a/src/view.c +++ b/src/view.c @@ -2517,7 +2517,11 @@ view_set_shade(struct view *view, bool shaded) view->shaded = shaded; ssd_enable_shade(view->ssd, view->shaded); - /* An unmapped view may not have a content tree */ + /* + * An unmapped view may not have a content tree. When the view + * is mapped again, the new content tree will be hidden by the + * map handler, if the view is still shaded at that point. + */ if (view->content_tree) { wlr_scene_node_set_enabled(&view->content_tree->node, !view->shaded); diff --git a/src/xwayland.c b/src/xwayland.c index 5600e8d2..efd8d8be 100644 --- a/src/xwayland.c +++ b/src/xwayland.c @@ -816,6 +816,8 @@ handle_map(struct wl_listener *listener, void *data) } } + wlr_scene_node_set_enabled(&view->content_tree->node, !view->shaded); + if (!view->been_mapped) { check_natural_geometry(view); set_initial_position(view, xwayland_surface);