diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-09-12 11:53:10 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-09-12 02:32:44 -0700 |
| commit | c3cb42f04d065c0e481ca66ae2a3edce7c5aac74 (patch) | |
| tree | a6a63c2e8ec94ffeee9e7b02a3d68ab8df5480fc /src/layout/workspace.rs | |
| parent | d0e624e6153e1a22ea0737e6830ed4edd7333304 (diff) | |
| download | niri-c3cb42f04d065c0e481ca66ae2a3edce7c5aac74.tar.gz niri-c3cb42f04d065c0e481ca66ae2a3edce7c5aac74.tar.bz2 niri-c3cb42f04d065c0e481ca66ae2a3edce7c5aac74.zip | |
Add SwitchPresetWindowHeight by id
Diffstat (limited to 'src/layout/workspace.rs')
| -rw-r--r-- | src/layout/workspace.rs | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs index 5a0ce052..f6a659f8 100644 --- a/src/layout/workspace.rs +++ b/src/layout/workspace.rs @@ -2373,13 +2373,26 @@ impl<W: LayoutElement> Workspace<W> { cancel_resize_for_column(&mut self.interactive_resize, col); } - pub fn toggle_window_height(&mut self) { + pub fn toggle_window_height(&mut self, window: Option<&W::Id>) { if self.columns.is_empty() { return; } - let col = &mut self.columns[self.active_column_idx]; - col.toggle_window_height(None, true); + let (col, tile_idx) = if let Some(window) = window { + self.columns + .iter_mut() + .find_map(|col| { + col.tiles + .iter() + .position(|tile| tile.window().id() == window) + .map(|tile_idx| (col, Some(tile_idx))) + }) + .unwrap() + } else { + (&mut self.columns[self.active_column_idx], None) + }; + + col.toggle_window_height(tile_idx, true); cancel_resize_for_column(&mut self.interactive_resize, col); } |
