aboutsummaryrefslogtreecommitdiff
path: root/src/input/mod.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-06-19 21:54:46 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-06-19 21:55:39 +0300
commitdb89d4d3dd1440e18193d4ce98d207531c7720e0 (patch)
tree9c4974f68ad38928d4bb0b53f219cc607cf9ea59 /src/input/mod.rs
parent226273f6607ae83b17c06e0e094ace64ed7a4f7c (diff)
downloadniri-db89d4d3dd1440e18193d4ce98d207531c7720e0.tar.gz
niri-db89d4d3dd1440e18193d4ce98d207531c7720e0.tar.bz2
niri-db89d4d3dd1440e18193d4ce98d207531c7720e0.zip
Implement vertical middle mouse gesture
Diffstat (limited to 'src/input/mod.rs')
-rw-r--r--src/input/mod.rs16
1 files changed, 8 insertions, 8 deletions
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;