aboutsummaryrefslogtreecommitdiff
path: root/src/input
diff options
context:
space:
mode:
authorWinter <102400503+exoess@users.noreply.github.com>2024-07-09 21:52:48 -0700
committerGitHub <noreply@github.com>2024-07-10 04:52:48 +0000
commita283c34dbbad44dfddfa4b5eafa6d8e3b47b7c14 (patch)
tree3999eec34fa448f919f410966bccb16f555e5db4 /src/input
parentf9fe86ee3e82ff02ac9f75869cc4219850ae3f4c (diff)
downloadniri-a283c34dbbad44dfddfa4b5eafa6d8e3b47b7c14.tar.gz
niri-a283c34dbbad44dfddfa4b5eafa6d8e3b47b7c14.tar.bz2
niri-a283c34dbbad44dfddfa4b5eafa6d8e3b47b7c14.zip
Add move-column-{left/right}-or-to-monitor-{left/right} (#528)
* feature added, move-column-left-or-monitor-left and move-column-right-or-monitor-right * fixed stupid mistake * yalter's fixes * fixed names * fixed a stupid mistake --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
Diffstat (limited to 'src/input')
-rw-r--r--src/input/mod.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/input/mod.rs b/src/input/mod.rs
index d96de0cb..148129cf 100644
--- a/src/input/mod.rs
+++ b/src/input/mod.rs
@@ -571,6 +571,40 @@ impl State {
// FIXME: granular
self.niri.queue_redraw_all();
}
+ Action::MoveColumnLeftOrToMonitorLeft => {
+ if let Some(output) = self.niri.output_left() {
+ if self.niri.layout.move_column_left_or_to_output(&output)
+ && !self.maybe_warp_cursor_to_focus_centered()
+ {
+ self.move_cursor_to_output(&output);
+ } else {
+ self.maybe_warp_cursor_to_focus();
+ }
+ } else {
+ self.niri.layout.move_left();
+ self.maybe_warp_cursor_to_focus();
+ }
+
+ // FIXME: granular
+ self.niri.queue_redraw_all();
+ }
+ Action::MoveColumnRightOrToMonitorRight => {
+ if let Some(output) = self.niri.output_right() {
+ if self.niri.layout.move_column_right_or_to_output(&output)
+ && !self.maybe_warp_cursor_to_focus_centered()
+ {
+ self.move_cursor_to_output(&output);
+ } else {
+ self.maybe_warp_cursor_to_focus();
+ }
+ } else {
+ self.niri.layout.move_right();
+ self.maybe_warp_cursor_to_focus();
+ }
+
+ // FIXME: granular
+ self.niri.queue_redraw_all();
+ }
Action::MoveWindowDown => {
self.niri.layout.move_down();
self.maybe_warp_cursor_to_focus();