shell: xdg-popup positioning logic
This commit is contained in:
parent
c3c0a25a80
commit
be136306cc
6 changed files with 434 additions and 13 deletions
|
|
@ -195,6 +195,8 @@ impl TilingLayout {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
let mut changed = false;
|
||||
while let Some(dead_windows) = Some(TilingLayout::update_space_positions(
|
||||
&mut self.trees,
|
||||
space,
|
||||
|
|
@ -205,6 +207,12 @@ impl TilingLayout {
|
|||
for window in dead_windows {
|
||||
self.unmap_window_internal(&window);
|
||||
}
|
||||
changed = true;
|
||||
}
|
||||
if changed {
|
||||
for window in &self.windows {
|
||||
update_reactive_popups(space, window);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -568,6 +568,10 @@ impl Shell {
|
|||
focus_stack.iter(),
|
||||
);
|
||||
}
|
||||
|
||||
for window in self.active_space(output).space.windows() {
|
||||
self.update_reactive_popups(window);
|
||||
}
|
||||
}
|
||||
|
||||
pub fn map_layer(&mut self, layer_surface: &LayerSurface, dh: &DisplayHandle) {
|
||||
|
|
@ -644,6 +648,13 @@ impl Shell {
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
for window in self.active_space(output).space.windows() {
|
||||
self.update_reactive_popups(window);
|
||||
}
|
||||
for window in self.spaces[idx].space.windows() {
|
||||
self.update_reactive_popups(window);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue