diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-14 16:29:03 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-14 16:29:03 +0400 |
| commit | d776ab7763c335a0af22e29575a5d9f4f5820663 (patch) | |
| tree | 06af0f94af232f077b562db6919b87210a93c0f7 /src/layout | |
| parent | 5f402210510aff0051abd080d664581c26e77c2b (diff) | |
| download | niri-d776ab7763c335a0af22e29575a5d9f4f5820663.tar.gz niri-d776ab7763c335a0af22e29575a5d9f4f5820663.tar.bz2 niri-d776ab7763c335a0af22e29575a5d9f4f5820663.zip | |
Fix interactive resize cancelling
The interactive resize may have ended, but we're still waiting for the
last commit of the respective window. When cancelling, we should cancel
those ones too.
Diffstat (limited to 'src/layout')
| -rw-r--r-- | src/layout/workspace.rs | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs index 5aa78f2b..5e5003ca 100644 --- a/src/layout/workspace.rs +++ b/src/layout/workspace.rs @@ -1519,7 +1519,7 @@ impl<W: LayoutElement> Workspace<W> { let mut column = self.columns.remove(self.active_column_idx); let data = self.data.remove(self.active_column_idx); - cancel_resize_if_this_column(&mut self.interactive_resize, &mut column); + cancel_resize_for_column(&mut self.interactive_resize, &mut column); self.columns.insert(new_idx, column); self.data.insert(new_idx, data); @@ -1833,7 +1833,7 @@ impl<W: LayoutElement> Workspace<W> { if !self.columns.is_empty() { let col = &mut self.columns[self.active_column_idx]; - cancel_resize_if_this_column(&mut self.interactive_resize, col); + cancel_resize_for_column(&mut self.interactive_resize, col); } } @@ -2031,7 +2031,7 @@ impl<W: LayoutElement> Workspace<W> { let col = &mut self.columns[self.active_column_idx]; col.toggle_width(); - cancel_resize_if_this_column(&mut self.interactive_resize, col); + cancel_resize_for_column(&mut self.interactive_resize, col); } pub fn toggle_full_width(&mut self) { @@ -2042,7 +2042,7 @@ impl<W: LayoutElement> Workspace<W> { let col = &mut self.columns[self.active_column_idx]; col.toggle_full_width(); - cancel_resize_if_this_column(&mut self.interactive_resize, col); + cancel_resize_for_column(&mut self.interactive_resize, col); } pub fn set_column_width(&mut self, change: SizeChange) { @@ -2053,7 +2053,7 @@ impl<W: LayoutElement> Workspace<W> { let col = &mut self.columns[self.active_column_idx]; col.set_column_width(change, None, true); - cancel_resize_if_this_column(&mut self.interactive_resize, col); + cancel_resize_for_column(&mut self.interactive_resize, col); } pub fn set_window_height(&mut self, change: SizeChange) { @@ -2064,7 +2064,7 @@ impl<W: LayoutElement> Workspace<W> { let col = &mut self.columns[self.active_column_idx]; col.set_window_height(change, None, true); - cancel_resize_if_this_column(&mut self.interactive_resize, col); + cancel_resize_for_column(&mut self.interactive_resize, col); } pub fn reset_window_height(&mut self) { @@ -2075,7 +2075,7 @@ impl<W: LayoutElement> Workspace<W> { let col = &mut self.columns[self.active_column_idx]; col.reset_window_height(None, true); - cancel_resize_if_this_column(&mut self.interactive_resize, col); + cancel_resize_for_column(&mut self.interactive_resize, col); } pub fn set_fullscreen(&mut self, window: &W::Id, is_fullscreen: bool) { @@ -2095,7 +2095,7 @@ impl<W: LayoutElement> Workspace<W> { let mut col = &mut self.columns[col_idx]; - cancel_resize_if_this_column(&mut self.interactive_resize, col); + cancel_resize_for_column(&mut self.interactive_resize, col); if is_fullscreen && col.tiles.len() > 1 { // This wasn't the only window in its column; extract it into a separate column. @@ -3353,17 +3353,17 @@ fn compute_toplevel_bounds( )) } -fn cancel_resize_if_this_column<W: LayoutElement>( +fn cancel_resize_for_column<W: LayoutElement>( interactive_resize: &mut Option<InteractiveResize<W>>, column: &mut Column<W>, ) { if let Some(resize) = interactive_resize { if column.contains(&resize.window) { *interactive_resize = None; - - for tile in &mut column.tiles { - tile.window_mut().cancel_interactive_resize(); - } } } + + for tile in &mut column.tiles { + tile.window_mut().cancel_interactive_resize(); + } } |
