aboutsummaryrefslogtreecommitdiff
path: root/src/layout.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2023-09-13 19:37:14 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2023-09-13 19:37:14 +0400
commit46403bd84a8e7a35fa7bcbdc1c7b95639613888c (patch)
tree50cb8654493368854033ab6b6648e0210b9a4975 /src/layout.rs
parent219ca08836adcd91f42ca24ec20f643af17dd270 (diff)
downloadniri-46403bd84a8e7a35fa7bcbdc1c7b95639613888c.tar.gz
niri-46403bd84a8e7a35fa7bcbdc1c7b95639613888c.tar.bz2
niri-46403bd84a8e7a35fa7bcbdc1c7b95639613888c.zip
layout: Correct view offset when swapping columns
Diffstat (limited to 'src/layout.rs')
-rw-r--r--src/layout.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/layout.rs b/src/layout.rs
index 3d85ecbe..68feb2b8 100644
--- a/src/layout.rs
+++ b/src/layout.rs
@@ -1523,7 +1523,19 @@ impl<W: LayoutElement> Workspace<W> {
return;
}
+ let current_x = self.view_pos();
+
self.columns.swap(self.active_column_idx, new_idx);
+
+ let new_x = self.column_x(self.active_column_idx) - PADDING;
+ let new_view_offset = compute_new_view_offset(
+ current_x,
+ self.view_size.w,
+ new_x,
+ self.columns[self.active_column_idx].size().w,
+ );
+ self.view_offset = new_view_offset;
+
self.activate_column(new_idx);
}
@@ -1537,7 +1549,19 @@ impl<W: LayoutElement> Workspace<W> {
return;
}
+ let current_x = self.view_pos();
+
self.columns.swap(self.active_column_idx, new_idx);
+
+ let new_x = self.column_x(self.active_column_idx) - PADDING;
+ let new_view_offset = compute_new_view_offset(
+ current_x,
+ self.view_size.w,
+ new_x,
+ self.columns[self.active_column_idx].size().w,
+ );
+ self.view_offset = new_view_offset;
+
self.activate_column(new_idx);
}