1
0
Fork 0

Support horizontal scrolling on X11

This was previously bound to the mouse forwards/back
buttons (canonically mouse 4 and 5).
This commit is contained in:
Robbert van der Helm 2022-11-22 15:39:49 +01:00
parent 025f34b80f
commit 9798d3ca86

View file

@ -596,20 +596,17 @@ impl Window {
let detail = event.detail(); let detail = event.detail();
match detail { match detail {
4 => { 4..=7 => {
handler.on_event( handler.on_event(
&mut crate::Window::new(self), &mut crate::Window::new(self),
Event::Mouse(MouseEvent::WheelScrolled { Event::Mouse(MouseEvent::WheelScrolled {
delta: ScrollDelta::Lines { x: 0.0, y: 1.0 }, delta: match detail {
modifiers: key_mods(event.state()), 4 => ScrollDelta::Lines { x: 0.0, y: 1.0 },
}), 5 => ScrollDelta::Lines { x: 0.0, y: -1.0 },
); 6 => ScrollDelta::Lines { x: -1.0, y: 0.0 },
} 7 => ScrollDelta::Lines { x: 1.0, y: 0.0 },
5 => { _ => unreachable!(),
handler.on_event( },
&mut crate::Window::new(self),
Event::Mouse(MouseEvent::WheelScrolled {
delta: ScrollDelta::Lines { x: 0.0, y: -1.0 },
modifiers: key_mods(event.state()), modifiers: key_mods(event.state()),
}), }),
); );
@ -631,7 +628,7 @@ impl Window {
let event = unsafe { xcb::cast_event::<xcb::ButtonPressEvent>(&event) }; let event = unsafe { xcb::cast_event::<xcb::ButtonPressEvent>(&event) };
let detail = event.detail(); let detail = event.detail();
if detail != 4 && detail != 5 { if !(4..=7).contains(&detail) {
let button_id = mouse_id(detail); let button_id = mouse_id(detail);
handler.on_event( handler.on_event(
&mut crate::Window::new(self), &mut crate::Window::new(self),