diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-12-30 09:05:35 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-12-30 20:12:37 +0300 |
| commit | a7c57f4fafabed609ef75b92715beb4e7335d823 (patch) | |
| tree | 92efe12782275f0611fa10dd3663314c679a9822 /src/layout/scrolling.rs | |
| parent | 8409107a5bb04980ea196a5d7095d5c34f6b2e4e (diff) | |
| download | niri-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.rs | 21 |
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; |
