1
0
Fork 0
forked from wry/wry

metal: handle absolute motion events

This commit is contained in:
Julian Orth 2025-07-27 11:33:55 +02:00
parent 9bfebe4c42
commit dc9a3c20ea
5 changed files with 62 additions and 8 deletions

View file

@ -95,6 +95,7 @@ impl MetalBackend {
c::LIBINPUT_EVENT_DEVICE_REMOVED => self.handle_li_device_removed(event),
c::LIBINPUT_EVENT_KEYBOARD_KEY => self.handle_keyboard_key(event),
c::LIBINPUT_EVENT_POINTER_MOTION => self.handle_pointer_motion(event),
c::LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE => self.handle_pointer_motion_absolute(event),
c::LIBINPUT_EVENT_POINTER_BUTTON => self.handle_pointer_button(event),
c::LIBINPUT_EVENT_POINTER_SCROLL_WHEEL => {
self.handle_pointer_axis(event, AxisSource::Wheel)
@ -248,6 +249,15 @@ impl MetalBackend {
});
}
fn handle_pointer_motion_absolute(self: &Rc<Self>, event: LibInputEvent) {
let (event, dev) = unpack!(self, event, pointer_event);
dev.event(InputEvent::MotionAbsolute {
time_usec: event.time_usec(),
x_normed: event.x_transformed(1) as f32,
y_normed: event.y_transformed(1) as f32,
});
}
fn handle_gesture_swipe_begin(self: &Rc<Self>, event: LibInputEvent) {
let (event, dev) = unpack!(self, event, gesture_event);
dev.event(InputEvent::SwipeBegin {