Handle horizontal wheel input (Windows) (#792)

* add handler for horizontal wheel input

* add changlelog message re now handling horiz scroll on windows
This commit is contained in:
Torkel Danielsson 2019-02-22 15:31:16 +01:00 committed by Victor Berger
parent 3fea477bfd
commit dad8de82fa
2 changed files with 17 additions and 0 deletions

View file

@ -45,6 +45,7 @@
- Refactored Windows state/flag-setting code.
- On Windows, hiding the cursor no longer hides the cursor for all Winit windows - just the one `hide_cursor` was called on.
- On Windows, cursor grabs used to get perpetually canceled when the grabbing window lost focus. Now, cursor grabs automatically get re-initialized when the window regains focus and the mouse moves over the client area.
- On Windows, only vertical mouse wheel events were handled. Now, horizontal mouse wheel events are also handled.
# Version 0.18.1 (2018-12-30)

View file

@ -994,6 +994,22 @@ unsafe extern "system" fn public_window_callback<T>(
0
},
winuser::WM_MOUSEHWHEEL => {
use event::MouseScrollDelta::LineDelta;
use event::TouchPhase;
let value = (wparam >> 16) as i16;
let value = value as i32;
let value = value as f32 / winuser::WHEEL_DELTA as f32;
subclass_input.send_event(Event::WindowEvent {
window_id: RootWindowId(WindowId(window)),
event: WindowEvent::MouseWheel { device_id: DEVICE_ID, delta: LineDelta(value, 0.0), phase: TouchPhase::Moved, modifiers: event::get_key_mods() },
});
0
},
winuser::WM_KEYDOWN | winuser::WM_SYSKEYDOWN => {
use event::ElementState::Pressed;
use event::VirtualKeyCode;