aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-10-12 09:57:38 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-10-12 09:58:03 +0300
commit33b39913c7121a6c7b112beb0e329c3e64e4f57a (patch)
tree86bb3f7fe63dedf2eb5683e061370bd3e47ff68b /src
parentd5cbc35811dc758753b4f74b05a8c439fd850d83 (diff)
downloadniri-33b39913c7121a6c7b112beb0e329c3e64e4f57a.tar.gz
niri-33b39913c7121a6c7b112beb0e329c3e64e4f57a.tar.bz2
niri-33b39913c7121a6c7b112beb0e329c3e64e4f57a.zip
layout: Fix expel animation of the smaller window in column
Diffstat (limited to 'src')
-rw-r--r--src/layout/workspace.rs16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs
index d115f07c..0348dfa7 100644
--- a/src/layout/workspace.rs
+++ b/src/layout/workspace.rs
@@ -2033,29 +2033,29 @@ impl<W: LayoutElement> Workspace<W> {
return;
}
- let offset =
- self.column_x(self.active_column_idx) - self.column_x(self.active_column_idx + 1);
- let mut offset = Point::from((offset, 0.));
+ let source_col_idx = self.active_column_idx;
+ let target_col_idx = self.active_column_idx + 1;
+ let cur_x = self.column_x(source_col_idx);
let source_column = &self.columns[self.active_column_idx];
if source_column.tiles.len() == 1 {
return;
}
- offset.x += source_column.render_offset().x;
+ let mut offset = Point::from((source_column.render_offset().x, 0.));
let prev_off = source_column.tile_offset(source_column.active_tile_idx);
let width = source_column.width;
let is_full_width = source_column.is_full_width;
let tile = self.remove_tile_by_idx(
- self.active_column_idx,
+ source_col_idx,
source_column.active_tile_idx,
Transaction::new(),
None,
);
self.add_tile(
- Some(self.active_column_idx + 1),
+ Some(target_col_idx),
tile,
true,
width,
@@ -2063,7 +2063,9 @@ impl<W: LayoutElement> Workspace<W> {
Some(self.options.animations.window_movement.0),
);
- let new_col = &mut self.columns[self.active_column_idx];
+ offset.x += cur_x - self.column_x(target_col_idx);
+
+ let new_col = &mut self.columns[target_col_idx];
offset += prev_off - new_col.tile_offset(0);
new_col.tiles[0].animate_move_from(offset);
}