1
0
Fork 0
forked from wry/wry

input: add support for natural scrolling

Closes #69
This commit is contained in:
Julian Orth 2024-02-04 18:50:49 +01:00
parent b4d73064d9
commit 887e2b6cbc
11 changed files with 77 additions and 0 deletions

View file

@ -296,6 +296,7 @@ struct MetalInputDevice {
tap_enabled: Cell<Option<bool>>,
drag_enabled: Cell<Option<bool>>,
drag_lock_enabled: Cell<Option<bool>>,
natural_scrolling_enabled: Cell<Option<bool>>,
}
#[derive(Clone)]
@ -354,6 +355,9 @@ impl MetalInputDevice {
if let Some(enabled) = self.drag_lock_enabled.get() {
dev.device().set_drag_lock_enabled(enabled);
}
if let Some(enabled) = self.natural_scrolling_enabled.get() {
dev.device().set_natural_scrolling_enabled(enabled);
}
}
fn pre_pause(&self) {
@ -465,6 +469,13 @@ impl InputDevice for MetalInputDevice {
dev.device().set_drag_lock_enabled(enabled);
}
}
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);
}
}
}
impl MetalInputDevice {

View file

@ -296,6 +296,7 @@ impl MetalBackend {
tap_enabled: Default::default(),
drag_enabled: Default::default(),
drag_lock_enabled: Default::default(),
natural_scrolling_enabled: Default::default(),
});
slots[slot] = Some(dev.clone());
self.device_holder

View file

@ -1162,6 +1162,10 @@ impl InputDevice for XSeatKeyboard {
fn set_drag_lock_enabled(&self, enabled: bool) {
let _ = enabled;
}
fn set_natural_scrolling_enabled(&self, enabled: bool) {
let _ = enabled;
}
}
impl InputDevice for XSeatMouse {
@ -1223,4 +1227,8 @@ impl InputDevice for XSeatMouse {
fn set_drag_lock_enabled(&self, enabled: bool) {
let _ = enabled;
}
fn set_natural_scrolling_enabled(&self, enabled: bool) {
let _ = enabled;
}
}