stack: Remember position during continuous move action

This commit is contained in:
Victoria Brekenfeld 2025-02-26 15:31:06 +01:00 committed by Victoria Brekenfeld
parent e116f20396
commit 638684642c
4 changed files with 30 additions and 10 deletions

View file

@ -1051,7 +1051,7 @@ impl TilingLayout {
toplevel_leave_workspace(&surface, &other_desc.handle);
toplevel_enter_workspace(&surface, &this_desc.handle);
}
this_stack.add_window(surface, Some(this_idx + i));
this_stack.add_window(surface, Some(this_idx + i), None);
}
if this.output != other_output {
this_surface.output_leave(&this.output);
@ -1138,7 +1138,7 @@ impl TilingLayout {
toplevel_leave_workspace(&surface, &this_desc.handle);
toplevel_enter_workspace(&surface, &other_desc.handle);
}
other_stack.add_window(surface, Some(other_idx + i));
other_stack.add_window(surface, Some(other_idx + i), None);
}
if this.output != other_output {
other_surface.output_leave(&other_output);
@ -1209,9 +1209,9 @@ impl TilingLayout {
.unwrap();
let this_was_active = &this_stack.active() == this_surface;
let other_was_active = &other_stack.active() == other_surface;
this_stack.add_window(other_surface.clone(), Some(this_idx));
this_stack.add_window(other_surface.clone(), Some(this_idx), None);
this_stack.remove_window(&this_surface);
other_stack.add_window(this_surface.clone(), Some(other_idx));
other_stack.add_window(this_surface.clone(), Some(other_idx), None);
if this.output != other_output {
toplevel_leave_output(this_surface, &this.output);
@ -1681,6 +1681,7 @@ impl TilingLayout {
Direction::Right => Some(0),
_ => None,
},
Some(seat),
);
tree.get_mut(&og_parent)
.unwrap()
@ -2738,7 +2739,7 @@ impl TilingLayout {
unreachable!()
};
for surface in window.windows().map(|s| s.0) {
stack.add_window(surface, None);
stack.add_window(surface, None, None);
}
mapped.clone()
}