feat: add Phase 1 interaction protocols

This commit is contained in:
Samuel Onoja committed 2026-09-24 05:46:00 +01:00
1 parent a941b80aa9
commit 37550f447d
8 files changed
+169 -6

No files matched your search

+16 -2
View File
@@ -1,11 +1,11 @@
use smithay::{
backend::input::{
AbsolutePositionEvent, Axis, AxisSource, ButtonState, Event, InputBackend, InputEvent,
KeyboardKeyEvent, PointerAxisEvent, PointerButtonEvent,
KeyboardKeyEvent, PointerAxisEvent, PointerButtonEvent, PointerMotionEvent,
},
input::{
keyboard::FilterResult,
pointer::{AxisFrame, ButtonEvent, MotionEvent},
pointer::{AxisFrame, ButtonEvent, MotionEvent, RelativeMotionEvent},
},
reexports::wayland_server::protocol::wl_surface::WlSurface,
utils::{SERIAL_COUNTER, Serial},
@@ -47,6 +47,20 @@ impl Ferese {
);
pointer.frame(self);
}
InputEvent::PointerMotion { event, .. } => {
let pointer = self.seat.get_pointer().expect("seat has a pointer");
let focus = self.surface_under(pointer.current_location());
pointer.relative_motion(
self,
focus,
&RelativeMotionEvent {
delta: event.delta(),
delta_unaccel: event.delta_unaccel(),
utime: (event.time_msec() as u64).saturating_mul(1_000),
},
);
pointer.frame(self);
}
InputEvent::PointerButton { event, .. } => {
let pointer = self.seat.get_pointer().expect("seat has a pointer");
let serial = SERIAL_COUNTER.next_serial();