aboutsummaryrefslogtreecommitdiff
path: root/src/handlers
diff options
context:
space:
mode:
Diffstat (limited to 'src/handlers')
-rw-r--r--src/handlers/xdg_shell.rs35
1 files changed, 9 insertions, 26 deletions
diff --git a/src/handlers/xdg_shell.rs b/src/handlers/xdg_shell.rs
index 20f348ba..171b65fd 100644
--- a/src/handlers/xdg_shell.rs
+++ b/src/handlers/xdg_shell.rs
@@ -40,7 +40,6 @@ use tracing::field::Empty;
use crate::input::move_grab::MoveGrab;
use crate::input::resize_grab::ResizeGrab;
-use crate::input::touch_move_grab::TouchMoveGrab;
use crate::input::touch_resize_grab::TouchResizeGrab;
use crate::input::{PointerOrTouchStartData, DOUBLE_CLICK_TIME};
use crate::layout::ActivateWindow;
@@ -133,33 +132,17 @@ impl XdgShellHandler for State {
let window = mapped.window.clone();
let output = output.clone();
- let output_pos = self
- .niri
- .global_space
- .output_geometry(&output)
- .unwrap()
- .loc
- .to_f64();
-
- let pos_within_output = start_data.location() - output_pos;
-
- if !self
- .niri
- .layout
- .interactive_move_begin(window.clone(), &output, pos_within_output)
- {
- return;
- }
-
- match start_data {
- PointerOrTouchStartData::Pointer(start_data) => {
- let grab = MoveGrab::new(start_data, window, false);
- pointer.set_grab(self, grab, serial, Focus::Clear);
+ match &start_data {
+ PointerOrTouchStartData::Pointer(_) => {
+ if let Some(grab) = MoveGrab::new(self, start_data, window.clone(), true) {
+ pointer.set_grab(self, grab, serial, Focus::Clear);
+ }
}
- PointerOrTouchStartData::Touch(start_data) => {
+ PointerOrTouchStartData::Touch(_) => {
let touch = self.niri.seat.get_touch().unwrap();
- let grab = TouchMoveGrab::new(start_data, window);
- touch.set_grab(self, grab, serial);
+ if let Some(grab) = MoveGrab::new(self, start_data, window.clone(), true) {
+ touch.set_grab(self, grab, serial);
+ }
}
}