shell: Each surface has only one workspace
This commit is contained in:
parent
32efedc7e1
commit
9ced8c346d
2 changed files with 2 additions and 6 deletions
|
|
@ -1006,10 +1006,7 @@ impl Shell {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn workspaces_for_surface(
|
||||
&self,
|
||||
surface: &WlSurface,
|
||||
) -> impl Iterator<Item = (WorkspaceHandle, Output)> {
|
||||
pub fn workspace_for_surface(&self, surface: &WlSurface) -> Option<(WorkspaceHandle, Output)> {
|
||||
match self.outputs().find(|o| {
|
||||
let map = layer_map_for_output(o);
|
||||
map.layer_for_surface(surface, WindowSurfaceType::ALL)
|
||||
|
|
@ -1029,7 +1026,6 @@ impl Shell {
|
|||
})
|
||||
.map(|w| (w.handle.clone(), w.output().clone())),
|
||||
}
|
||||
.into_iter()
|
||||
}
|
||||
|
||||
pub fn element_for_surface(&self, surface: &CosmicSurface) -> Option<&CosmicMapped> {
|
||||
|
|
|
|||
|
|
@ -1246,7 +1246,7 @@ impl State {
|
|||
.outputs()
|
||||
.map(|o| (o.clone(), self.common.shell.active_space(o).handle.clone()))
|
||||
.collect::<Vec<_>>();
|
||||
for (handle, output) in self.common.shell.workspaces_for_surface(surface) {
|
||||
if let Some((handle, output)) = self.common.shell.workspace_for_surface(surface) {
|
||||
let workspace = self.common.shell.space_for_handle_mut(&handle).unwrap();
|
||||
if !workspace.pending_buffers.is_empty() {
|
||||
// TODO: replace with drain_filter....
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue