mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-25 14:51:30 +11:00
Merge pull request #405 from tomaka/win32-wheel
[Breaking change] Fix mouse wheel value on win32 and return a f64 instead of i32 in the MouseWheel event
This commit is contained in:
commit
119bd6393f
|
@ -275,7 +275,7 @@ impl<'a> Iterator for PollEventsIterator<'a> {
|
||||||
self.window.delegate.state.pending_events.lock().unwrap().extend(events.into_iter());
|
self.window.delegate.state.pending_events.lock().unwrap().extend(events.into_iter());
|
||||||
event
|
event
|
||||||
},
|
},
|
||||||
NSScrollWheel => { Some(MouseWheel(event.scrollingDeltaY() as i32)) },
|
NSScrollWheel => { Some(MouseWheel(event.scrollingDeltaX() as f64, event.scrollingDeltaY() as f64)) },
|
||||||
_ => { None },
|
_ => { None },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -114,8 +114,9 @@ pub unsafe extern "system" fn callback(window: winapi::HWND, msg: winapi::UINT,
|
||||||
|
|
||||||
let value = (wparam >> 16) as i16;
|
let value = (wparam >> 16) as i16;
|
||||||
let value = value as i32;
|
let value = value as i32;
|
||||||
|
let value = value as f64 / winapi::WHEEL_DELTA as f64;
|
||||||
|
|
||||||
send_event(window, MouseWheel(value));
|
send_event(window, MouseWheel(0.0, value));
|
||||||
|
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
|
|
|
@ -241,11 +241,11 @@ impl<'a> Iterator for PollEventsIterator<'a> {
|
||||||
ffi::Button2 => Some(Middle),
|
ffi::Button2 => Some(Middle),
|
||||||
ffi::Button3 => Some(Right),
|
ffi::Button3 => Some(Right),
|
||||||
ffi::Button4 => {
|
ffi::Button4 => {
|
||||||
self.window.pending_events.lock().unwrap().push_back(MouseWheel(1));
|
self.window.pending_events.lock().unwrap().push_back(MouseWheel(0.0, 1.0));
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
ffi::Button5 => {
|
ffi::Button5 => {
|
||||||
self.window.pending_events.lock().unwrap().push_back(MouseWheel(-1));
|
self.window.pending_events.lock().unwrap().push_back(MouseWheel(0.0, -1.0));
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
_ => None
|
_ => None
|
||||||
|
|
|
@ -25,9 +25,11 @@ pub enum Event {
|
||||||
/// The parameter are the (x,y) coords in pixels relative to the top-left corner of the window.
|
/// The parameter are the (x,y) coords in pixels relative to the top-left corner of the window.
|
||||||
MouseMoved((i32, i32)),
|
MouseMoved((i32, i32)),
|
||||||
|
|
||||||
|
/// Returns the horizontal and vertical mouse scrolling.
|
||||||
|
///
|
||||||
/// A positive value indicates that the wheel was rotated forward, away from the user;
|
/// A positive value indicates that the wheel was rotated forward, away from the user;
|
||||||
/// a negative value indicates that the wheel was rotated backward, toward the user.
|
/// a negative value indicates that the wheel was rotated backward, toward the user.
|
||||||
MouseWheel(i32),
|
MouseWheel(f64, f64),
|
||||||
|
|
||||||
/// An event from the mouse has been received.
|
/// An event from the mouse has been received.
|
||||||
MouseInput(ElementState, MouseButton),
|
MouseInput(ElementState, MouseButton),
|
||||||
|
|
Loading…
Reference in a new issue