1
0
Fork 0
forked from wry/wry

input: implement wl_seat version 9

This commit is contained in:
Julian Orth 2024-02-04 19:51:36 +01:00
parent 887e2b6cbc
commit 78b557b4a1
15 changed files with 91 additions and 20 deletions

View file

@ -283,6 +283,7 @@ struct MetalInputDevice {
events: SyncQueue<InputEvent>,
cb: CloneCell<Option<Rc<dyn Fn()>>>,
name: CloneCell<Rc<String>>,
natural_scrolling: Cell<bool>,
// state
pressed_keys: SmallMap<u32, (), 5>,
@ -356,7 +357,7 @@ impl MetalInputDevice {
dev.device().set_drag_lock_enabled(enabled);
}
if let Some(enabled) = self.natural_scrolling_enabled.get() {
dev.device().set_natural_scrolling_enabled(enabled);
self.do_set_natural_scrolling_enabled(&dev, enabled);
}
}
@ -377,6 +378,12 @@ impl MetalInputDevice {
});
}
}
fn do_set_natural_scrolling_enabled(&self, dev: &RegisteredDevice, enabled: bool) {
dev.device().set_natural_scrolling_enabled(enabled);
self.natural_scrolling
.set(dev.device().natural_scrolling_enabled());
}
}
impl InputDevice for MetalInputDevice {
@ -473,7 +480,7 @@ impl InputDevice for MetalInputDevice {
fn set_natural_scrolling_enabled(&self, enabled: bool) {
self.natural_scrolling_enabled.set(Some(enabled));
if let Some(dev) = self.inputdev.get() {
dev.device().set_natural_scrolling_enabled(enabled);
self.do_set_natural_scrolling_enabled(&dev, enabled);
}
}
}