shell: Cleanup refresh a bit for global workspace mode

This commit is contained in:
Victoria Brekenfeld 2022-07-11 15:54:18 +02:00
parent e2f43053e9
commit 14fd613ed1

View file

@ -505,25 +505,36 @@ impl Shell {
pub fn refresh(&mut self, dh: &DisplayHandle) { pub fn refresh(&mut self, dh: &DisplayHandle) {
self.popups.cleanup(); self.popups.cleanup();
for output in &self.outputs { match &self.workspace_mode {
let workspace = match &self.workspace_mode { WorkspaceMode::OutputBound => {
WorkspaceMode::OutputBound => { for output in &self.outputs {
let active = output let active = output
.user_data() .user_data()
.get::<OutputBoundState>() .get::<OutputBoundState>()
.unwrap() .unwrap()
.active .active
.get(); .get();
&mut self.spaces[active] let workspace = &mut self.spaces[active];
workspace.refresh(dh);
if workspace.space.windows().next().is_none()
&& !self.workspace_state.workspace_states(&workspace.handle).map(|mut i| i.any(|s| s == &WState::Hidden)).unwrap_or(true)
{
self.workspace_state.update().add_workspace_state(&workspace.handle, WState::Hidden);
}
} }
WorkspaceMode::Global { active, .. } => &mut self.spaces[*active],
};
workspace.refresh(dh);
if workspace.space.windows().next().is_none()
&& !self.workspace_state.workspace_states(&workspace.handle).map(|mut i| i.any(|s| s == &WState::Hidden)).unwrap_or(true)
{
self.workspace_state.update().add_workspace_state(&workspace.handle, WState::Hidden);
} }
WorkspaceMode::Global { active, .. } => {
let workspace = &mut self.spaces[*active];
workspace.refresh(dh);
if workspace.space.windows().next().is_none()
&& !self.workspace_state.workspace_states(&workspace.handle).map(|mut i| i.any(|s| s == &WState::Hidden)).unwrap_or(true)
{
self.workspace_state.update().add_workspace_state(&workspace.handle, WState::Hidden);
}
}
};
for output in &self.outputs {
let mut map = layer_map_for_output(output); let mut map = layer_map_for_output(output);
map.cleanup(dh); map.cleanup(dh);
} }