diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2023-10-21 20:48:48 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2023-10-21 20:58:30 +0400 |
| commit | 5156ab1dcb0b191ddcb655ccc554907ee2c20dda (patch) | |
| tree | ea66f4dd3c6910375f3be38d7f773521eb367131 | |
| parent | fb866c63e5d61107efb9ced46f72ae562af74fce (diff) | |
| download | niri-5156ab1dcb0b191ddcb655ccc554907ee2c20dda.tar.gz niri-5156ab1dcb0b191ddcb655ccc554907ee2c20dda.tar.bz2 niri-5156ab1dcb0b191ddcb655ccc554907ee2c20dda.zip | |
Update pointer focus before input
During an animation, our pointer might have updated.
| -rw-r--r-- | src/input.rs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/input.rs b/src/input.rs index fef72156..24504f7d 100644 --- a/src/input.rs +++ b/src/input.rs @@ -474,6 +474,8 @@ impl State { } }; + self.update_pointer_focus(); + pointer.button( self, &ButtonEvent { @@ -520,6 +522,8 @@ impl State { } } + self.update_pointer_focus(); + let pointer = &self.niri.seat.get_pointer().unwrap(); pointer.axis(self, frame); pointer.frame(self); @@ -705,6 +709,11 @@ impl State { let serial = SERIAL_COUNTER.next_serial(); let pointer = self.niri.seat.get_pointer().unwrap(); + + if self.update_pointer_focus() { + pointer.frame(self); + } + pointer.gesture_swipe_begin( self, &GestureSwipeBeginEvent { @@ -729,6 +738,11 @@ impl State { } let pointer = self.niri.seat.get_pointer().unwrap(); + + if self.update_pointer_focus() { + pointer.frame(self); + } + pointer.gesture_swipe_update( self, &GestureSwipeUpdateEvent { @@ -751,6 +765,11 @@ impl State { let serial = SERIAL_COUNTER.next_serial(); let pointer = self.niri.seat.get_pointer().unwrap(); + + if self.update_pointer_focus() { + pointer.frame(self); + } + pointer.gesture_swipe_end( self, &GestureSwipeEndEvent { @@ -763,6 +782,11 @@ impl State { InputEvent::GesturePinchBegin { event } => { let serial = SERIAL_COUNTER.next_serial(); let pointer = self.niri.seat.get_pointer().unwrap(); + + if self.update_pointer_focus() { + pointer.frame(self); + } + pointer.gesture_pinch_begin( self, &GesturePinchBeginEvent { @@ -774,6 +798,11 @@ impl State { } InputEvent::GesturePinchUpdate { event } => { let pointer = self.niri.seat.get_pointer().unwrap(); + + if self.update_pointer_focus() { + pointer.frame(self); + } + pointer.gesture_pinch_update( self, &GesturePinchUpdateEvent { @@ -787,6 +816,11 @@ impl State { InputEvent::GesturePinchEnd { event } => { let serial = SERIAL_COUNTER.next_serial(); let pointer = self.niri.seat.get_pointer().unwrap(); + + if self.update_pointer_focus() { + pointer.frame(self); + } + pointer.gesture_pinch_end( self, &GesturePinchEndEvent { @@ -799,6 +833,11 @@ impl State { InputEvent::GestureHoldBegin { event } => { let serial = SERIAL_COUNTER.next_serial(); let pointer = self.niri.seat.get_pointer().unwrap(); + + if self.update_pointer_focus() { + pointer.frame(self); + } + pointer.gesture_hold_begin( self, &GestureHoldBeginEvent { @@ -811,6 +850,11 @@ impl State { InputEvent::GestureHoldEnd { event } => { let serial = SERIAL_COUNTER.next_serial(); let pointer = self.niri.seat.get_pointer().unwrap(); + + if self.update_pointer_focus() { + pointer.frame(self); + } + pointer.gesture_hold_end( self, &GestureHoldEndEvent { |
