aboutsummaryrefslogtreecommitdiff
path: root/src/layout/scrolling.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-12-30 09:05:35 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-12-30 20:12:37 +0300
commita7c57f4fafabed609ef75b92715beb4e7335d823 (patch)
tree92efe12782275f0611fa10dd3663314c679a9822 /src/layout/scrolling.rs
parent8409107a5bb04980ea196a5d7095d5c34f6b2e4e (diff)
downloadniri-a7c57f4fafabed609ef75b92715beb4e7335d823.tar.gz
niri-a7c57f4fafabed609ef75b92715beb4e7335d823.tar.bz2
niri-a7c57f4fafabed609ef75b92715beb4e7335d823.zip
Add toggle-window-width by-id action
Diffstat (limited to 'src/layout/scrolling.rs')
-rw-r--r--src/layout/scrolling.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/layout/scrolling.rs b/src/layout/scrolling.rs
index 10101cca..bdafdb71 100644
--- a/src/layout/scrolling.rs
+++ b/src/layout/scrolling.rs
@@ -2116,6 +2116,27 @@ impl<W: LayoutElement> ScrollingSpace<W> {
cancel_resize_for_column(&mut self.interactive_resize, col);
}
+ pub fn toggle_window_width(&mut self, window: Option<&W::Id>) {
+ if self.columns.is_empty() {
+ return;
+ }
+
+ let col = if let Some(window) = window {
+ self.columns
+ .iter_mut()
+ .find(|col| col.contains(window))
+ .unwrap()
+ } else {
+ &mut self.columns[self.active_column_idx]
+ };
+
+ // FIXME: when we fix preset fixed width to be per-window, this should also be made
+ // window-specific to resolve the correct window width.
+ col.toggle_width();
+
+ cancel_resize_for_column(&mut self.interactive_resize, col);
+ }
+
pub fn toggle_window_height(&mut self, window: Option<&W::Id>) {
if self.columns.is_empty() {
return;