diff --git a/Cargo.lock b/Cargo.lock index e2ce436c..9f8989e0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3761,7 +3761,7 @@ checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "smithay" version = "0.3.0" -source = "git+https://github.com/smithay//smithay?rev=36a0ec69b1#36a0ec69b1a2331b1a2d0e046b026cb85d7d132c" +source = "git+https://github.com/smithay//smithay?rev=1a61e1c13a#1a61e1c13a8d6996e28741a5ecdb09af4981c17d" dependencies = [ "appendlist", "ash", diff --git a/Cargo.toml b/Cargo.toml index 9dd2803c..bf2e7630 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -87,4 +87,4 @@ debug = true lto = "fat" [patch."https://github.com/Smithay/smithay.git"] -smithay = { git = "https://github.com/smithay//smithay", rev = "36a0ec69b1" } +smithay = { git = "https://github.com/smithay//smithay", rev = "1a61e1c13a" } diff --git a/src/input/mod.rs b/src/input/mod.rs index c4fa79cc..65304e33 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -498,24 +498,26 @@ impl State { } } let ptr = seat.get_pointer().unwrap(); - ptr.motion( - self, - under.clone(), - &MotionEvent { - location: position, - serial, - time: event.time_msec(), - }, - ); + // Relative motion is sent first to ensure they're part of a `frame` + // TODO: Find more correct solution ptr.relative_motion( self, - under, + under.clone(), &RelativeMotionEvent { delta: event.delta(), delta_unaccel: event.delta_unaccel(), utime: event.time(), }, ); + ptr.motion( + self, + under, + &MotionEvent { + location: position, + serial, + time: event.time_msec(), + }, + ); #[cfg(feature = "debug")] if self.common.seats().position(|x| x == &seat).unwrap() == 0 { let location = if let Some(output) = self.common.shell.outputs.first() {