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/view_offset_grab.rs | 190 ------------------------------------------ 1 file changed, 190 deletions(-) delete mode 100644 src/input/view_offset_grab.rs (limited to 'src/input/view_offset_grab.rs') diff --git a/src/input/view_offset_grab.rs b/src/input/view_offset_grab.rs deleted file mode 100644 index b4f9f96c..00000000 --- a/src/input/view_offset_grab.rs +++ /dev/null @@ -1,190 +0,0 @@ -use std::time::Duration; - -use smithay::input::pointer::{ - AxisFrame, ButtonEvent, CursorImageStatus, GestureHoldBeginEvent, GestureHoldEndEvent, - GesturePinchBeginEvent, GesturePinchEndEvent, GesturePinchUpdateEvent, GestureSwipeBeginEvent, - GestureSwipeEndEvent, GestureSwipeUpdateEvent, GrabStartData as PointerGrabStartData, - MotionEvent, PointerGrab, PointerInnerHandle, RelativeMotionEvent, -}; -use smithay::input::SeatHandler; -use smithay::utils::{Logical, Point}; - -use crate::niri::State; - -pub struct ViewOffsetGrab { - start_data: PointerGrabStartData, - last_location: Point, -} - -impl ViewOffsetGrab { - pub fn new(start_data: PointerGrabStartData) -> Self { - Self { - last_location: start_data.location, - start_data, - } - } - - fn on_ungrab(&mut self, state: &mut State) { - let res = state - .niri - .layout - .view_offset_gesture_end(false, Some(false)); - if let Some(output) = res { - state.niri.queue_redraw(&output); - } - - state.niri.pointer_grab_ongoing = false; - state - .niri - .cursor_manager - .set_cursor_image(CursorImageStatus::default_named()); - } -} - -impl PointerGrab for ViewOffsetGrab { - fn motion( - &mut self, - data: &mut State, - handle: &mut PointerInnerHandle<'_, State>, - _focus: Option<(::PointerFocus, Point)>, - event: &MotionEvent, - ) { - // While the grab is active, no client has pointer focus. - handle.motion(data, None, event); - - let timestamp = Duration::from_millis(u64::from(event.time)); - let delta = event.location - self.last_location; - self.last_location = event.location; - - let res = data - .niri - .layout - .view_offset_gesture_update(-delta.x, timestamp, false); - if let Some(output) = res { - if let Some(output) = output { - data.niri.queue_redraw(&output); - } - } else { - // The resize is no longer ongoing. - handle.unset_grab(self, data, event.serial, event.time, true); - } - } - - fn relative_motion( - &mut self, - data: &mut State, - handle: &mut PointerInnerHandle<'_, State>, - _focus: Option<(::PointerFocus, Point)>, - event: &RelativeMotionEvent, - ) { - // While the grab is active, no client has pointer focus. - handle.relative_motion(data, None, event); - } - - fn button( - &mut self, - data: &mut State, - handle: &mut PointerInnerHandle<'_, State>, - event: &ButtonEvent, - ) { - handle.button(data, event); - - if handle.current_pressed().is_empty() { - // No more buttons are pressed, release the grab. - handle.unset_grab(self, data, event.serial, event.time, true); - } - } - - fn axis( - &mut self, - data: &mut State, - handle: &mut PointerInnerHandle<'_, State>, - details: AxisFrame, - ) { - handle.axis(data, details); - } - - fn frame(&mut self, data: &mut State, handle: &mut PointerInnerHandle<'_, State>) { - handle.frame(data); - } - - fn gesture_swipe_begin( - &mut self, - data: &mut State, - handle: &mut PointerInnerHandle<'_, State>, - event: &GestureSwipeBeginEvent, - ) { - handle.gesture_swipe_begin(data, event); - } - - fn gesture_swipe_update( - &mut self, - data: &mut State, - handle: &mut PointerInnerHandle<'_, State>, - event: &GestureSwipeUpdateEvent, - ) { - handle.gesture_swipe_update(data, event); - } - - fn gesture_swipe_end( - &mut self, - data: &mut State, - handle: &mut PointerInnerHandle<'_, State>, - event: &GestureSwipeEndEvent, - ) { - handle.gesture_swipe_end(data, event); - } - - fn gesture_pinch_begin( - &mut self, - data: &mut State, - handle: &mut PointerInnerHandle<'_, State>, - event: &GesturePinchBeginEvent, - ) { - handle.gesture_pinch_begin(data, event); - } - - fn gesture_pinch_update( - &mut self, - data: &mut State, - handle: &mut PointerInnerHandle<'_, State>, - event: &GesturePinchUpdateEvent, - ) { - handle.gesture_pinch_update(data, event); - } - - fn gesture_pinch_end( - &mut self, - data: &mut State, - handle: &mut PointerInnerHandle<'_, State>, - event: &GesturePinchEndEvent, - ) { - handle.gesture_pinch_end(data, event); - } - - fn gesture_hold_begin( - &mut self, - data: &mut State, - handle: &mut PointerInnerHandle<'_, State>, - event: &GestureHoldBeginEvent, - ) { - handle.gesture_hold_begin(data, event); - } - - fn gesture_hold_end( - &mut self, - data: &mut State, - handle: &mut PointerInnerHandle<'_, State>, - event: &GestureHoldEndEvent, - ) { - handle.gesture_hold_end(data, event); - } - - fn start_data(&self) -> &PointerGrabStartData { - &self.start_data - } - - fn unset(&mut self, data: &mut State) { - self.on_ungrab(data); - } -} -- cgit