aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-05-14 16:29:03 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-05-14 16:29:03 +0400
commitd776ab7763c335a0af22e29575a5d9f4f5820663 (patch)
tree06af0f94af232f077b562db6919b87210a93c0f7 /src
parent5f402210510aff0051abd080d664581c26e77c2b (diff)
downloadniri-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')
-rw-r--r--src/layout/workspace.rs26
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();
+ }
}