diff --git a/src/backend/render/mod.rs b/src/backend/render/mod.rs index 2c26550a..472abb8e 100644 --- a/src/backend/render/mod.rs +++ b/src/backend/render/mod.rs @@ -27,7 +27,7 @@ use crate::{ }, config::ScreenFilter, shell::{ - CosmicMappedRenderElement, OverviewMode, SeatExt, Trigger, WorkspaceDelta, + CosmicMappedRenderElement, OutputId, OverviewMode, SeatExt, Trigger, WorkspaceDelta, WorkspaceRenderElement, element::CosmicMappedKey, focus::{FocusTarget, Stage, render_input_order, target::WindowGroup}, @@ -844,6 +844,12 @@ where }) .unwrap_or([0; 4]); + let namespace = output + .user_data() + .get::() + .map(|id| id.namespace_for_workspace(workspace_idx)) + .unwrap_or(workspace_idx); + push_render_elements_from_surface_tree( renderer, popup.wl_surface(), @@ -861,7 +867,7 @@ where FRAME_TIME_FILTER, &mut |elem| { elements.extend( - crop_to_output(NamespacedElement::new(elem, workspace_idx).into()) + crop_to_output(NamespacedElement::new(elem, namespace).into()) .map(Into::into), ) }, @@ -887,6 +893,12 @@ where }) .unwrap_or([0; 4]); + let namespace = output + .user_data() + .get::() + .map(|id| id.namespace_for_workspace(workspace_idx)) + .unwrap_or(workspace_idx); + push_render_elements_from_surface_tree( renderer, layer.wl_surface(), @@ -904,7 +916,7 @@ where FRAME_TIME_FILTER, &mut |elem| { elements.extend( - crop_to_output(NamespacedElement::new(elem, workspace_idx).into()) + crop_to_output(NamespacedElement::new(elem, namespace).into()) .map(Into::into), ) },