input: implement wl_seat version 9
This commit is contained in:
parent
887e2b6cbc
commit
78b557b4a1
15 changed files with 91 additions and 20 deletions
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue