diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-10-11 19:52:03 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-10-12 09:58:03 +0300 |
| commit | d5cbc35811dc758753b4f74b05a8c439fd850d83 (patch) | |
| tree | 76c1523953a23c5a623b6d4dcf237941a93cfab0 /src/input/mod.rs | |
| parent | a038c5aaabd1cf4224268518f7c8840ae7b30078 (diff) | |
| download | niri-d5cbc35811dc758753b4f74b05a8c439fd850d83.tar.gz niri-d5cbc35811dc758753b4f74b05a8c439fd850d83.tar.bz2 niri-d5cbc35811dc758753b4f74b05a8c439fd850d83.zip | |
Implement ConsumeOrExpelWindow{Left,Right} by id
Diffstat (limited to 'src/input/mod.rs')
| -rw-r--r-- | src/input/mod.rs | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/input/mod.rs b/src/input/mod.rs index 763620f5..a89682b9 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -707,17 +707,39 @@ impl State { self.niri.queue_redraw_all(); } Action::ConsumeOrExpelWindowLeft => { - self.niri.layout.consume_or_expel_window_left(); + self.niri.layout.consume_or_expel_window_left(None); self.maybe_warp_cursor_to_focus(); // FIXME: granular self.niri.queue_redraw_all(); } + Action::ConsumeOrExpelWindowLeftById(id) => { + let window = self.niri.layout.windows().find(|(_, m)| m.id().get() == id); + let window = window.map(|(_, m)| m.window.clone()); + if let Some(window) = window { + self.niri.layout.consume_or_expel_window_left(Some(&window)); + self.maybe_warp_cursor_to_focus(); + // FIXME: granular + self.niri.queue_redraw_all(); + } + } Action::ConsumeOrExpelWindowRight => { - self.niri.layout.consume_or_expel_window_right(); + self.niri.layout.consume_or_expel_window_right(None); self.maybe_warp_cursor_to_focus(); // FIXME: granular self.niri.queue_redraw_all(); } + Action::ConsumeOrExpelWindowRightById(id) => { + let window = self.niri.layout.windows().find(|(_, m)| m.id().get() == id); + let window = window.map(|(_, m)| m.window.clone()); + if let Some(window) = window { + self.niri + .layout + .consume_or_expel_window_right(Some(&window)); + self.maybe_warp_cursor_to_focus(); + // FIXME: granular + self.niri.queue_redraw_all(); + } + } Action::FocusColumnLeft => { self.niri.layout.focus_left(); self.maybe_warp_cursor_to_focus(); |
