From db89d4d3dd1440e18193d4ce98d207531c7720e0 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Wed, 19 Jun 2024 21:54:46 +0300 Subject: Implement vertical middle mouse gesture --- src/input/mod.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/input/mod.rs') diff --git a/src/input/mod.rs b/src/input/mod.rs index d0e1c55b..d5b0cd0e 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -29,7 +29,7 @@ use smithay::wayland::pointer_constraints::{with_pointer_constraint, PointerCons use smithay::wayland::tablet_manager::{TabletDescriptor, TabletSeatTrait}; use self::resize_grab::ResizeGrab; -use self::view_offset_grab::ViewOffsetGrab; +use self::spatial_movement_grab::SpatialMovementGrab; use crate::niri::State; use crate::ui::screenshot_ui::ScreenshotUi; use crate::utils::spawning::spawn; @@ -37,8 +37,8 @@ use crate::utils::{center, get_monotonic_time, ResizeEdge}; pub mod resize_grab; pub mod scroll_tracker; +pub mod spatial_movement_grab; pub mod swipe_tracker; -pub mod view_offset_grab; pub const DOUBLE_CLICK_TIME: Duration = Duration::from_millis(400); @@ -1252,15 +1252,13 @@ impl State { }; if mod_down { if let Some(output) = self.niri.output_under_cursor() { - self.niri.layout.view_offset_gesture_begin(&output, false); - let location = pointer.current_location(); let start_data = PointerGrabStartData { focus: None, button: event.button_code(), location, }; - let grab = ViewOffsetGrab::new(start_data); + let grab = SpatialMovementGrab::new(start_data, output); pointer.set_grab(self, grab, serial, Focus::Clear); self.niri.pointer_grab_ongoing = true; self.niri @@ -1699,7 +1697,9 @@ impl State { if cx.abs() > cy.abs() { self.niri.layout.view_offset_gesture_begin(&output, true); } else { - self.niri.layout.workspace_switch_gesture_begin(&output); + self.niri + .layout + .workspace_switch_gesture_begin(&output, true); } } } @@ -1711,7 +1711,7 @@ impl State { let res = self .niri .layout - .workspace_switch_gesture_update(delta_y, timestamp); + .workspace_switch_gesture_update(delta_y, timestamp, true); if let Some(output) = res { if let Some(output) = output { self.niri.queue_redraw(&output); @@ -1757,7 +1757,7 @@ impl State { let res = self .niri .layout - .workspace_switch_gesture_end(event.cancelled()); + .workspace_switch_gesture_end(event.cancelled(), Some(true)); if let Some(output) = res { self.niri.queue_redraw(&output); handled = true; -- cgit