aboutsummaryrefslogtreecommitdiff
path: root/src/input
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-10-11 19:52:03 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-10-12 09:58:03 +0300
commitd5cbc35811dc758753b4f74b05a8c439fd850d83 (patch)
tree76c1523953a23c5a623b6d4dcf237941a93cfab0 /src/input
parenta038c5aaabd1cf4224268518f7c8840ae7b30078 (diff)
downloadniri-d5cbc35811dc758753b4f74b05a8c439fd850d83.tar.gz
niri-d5cbc35811dc758753b4f74b05a8c439fd850d83.tar.bz2
niri-d5cbc35811dc758753b4f74b05a8c439fd850d83.zip
Implement ConsumeOrExpelWindow{Left,Right} by id
Diffstat (limited to 'src/input')
-rw-r--r--src/input/mod.rs26
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();