1
0
Fork 0
forked from wry/wry

tree: restack floaters and popups on demand

This commit is contained in:
Julian Orth 2024-03-03 15:39:04 +01:00
parent 911591973e
commit 386d74f926
6 changed files with 52 additions and 6 deletions

View file

@ -759,6 +759,7 @@ impl ContainerNode {
}
self.mono_child.set(Some(child.clone()));
child.node.tl_set_visible(true);
child.node.tl_restack_popups();
// log::info!("activate_child2");
self.schedule_layout();
}
@ -797,6 +798,7 @@ impl ContainerNode {
.clone()
.node_do_focus(&seat, Direction::Unspecified);
}
child.node.tl_restack_popups();
} else {
for child in self.children.iter() {
child.node.tl_set_visible(true);
@ -1366,6 +1368,7 @@ impl ContainingNode for ContainerNode {
let mut body = None;
if was_mc {
self.mono_child.set(Some(link.to_ref()));
link.node.tl_restack_popups();
body = Some(self.mono_body.get());
} else if !have_mc {
body = Some(link.body.get());
@ -1537,6 +1540,16 @@ impl ToplevelNodeBase for ContainerNode {
}
self
}
fn tl_restack_popups(&self) {
if let Some(mc) = self.mono_child.get() {
mc.node.tl_restack_popups();
} else {
for child in self.children.iter() {
child.node.tl_restack_popups();
}
}
}
}
fn direction_to_split(dir: Direction) -> (ContainerSplit, bool) {