Fix vertical scroll being inverted on web targets (#1665)

This commit is contained in:
alvinhochun 2020-08-21 09:09:04 +08:00 committed by GitHub
parent 89d4c06dec
commit 6ba583d198
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 3 additions and 2 deletions

View file

@ -18,6 +18,7 @@
- On iOS and Android, `set_inner_size` is now a no-op instead of a runtime crash. - On iOS and Android, `set_inner_size` is now a no-op instead of a runtime crash.
- On Android, fix `ControlFlow::Poll` not polling the Android event queue. - On Android, fix `ControlFlow::Poll` not polling the Android event queue.
- On macOS, add `NSWindow.hasShadow` support. - On macOS, add `NSWindow.hasShadow` support.
- On Web, fix vertical mouse wheel scrolling being inverted.
- **Breaking:** On Web, `set_cursor_position` and `set_cursor_grab` will now always return an error. - **Breaking:** On Web, `set_cursor_position` and `set_cursor_grab` will now always return an error.
- **Breaking:** `PixelDelta` scroll events now return a `PhysicalPosition`. - **Breaking:** `PixelDelta` scroll events now return a `PhysicalPosition`.
- On NetBSD, fixed crash due to incorrect detection of the main thread. - On NetBSD, fixed crash due to incorrect detection of the main thread.

View file

@ -32,7 +32,7 @@ pub fn mouse_position(event: &impl IMouseEvent) -> LogicalPosition<f64> {
pub fn mouse_scroll_delta(event: &MouseWheelEvent) -> Option<MouseScrollDelta> { pub fn mouse_scroll_delta(event: &MouseWheelEvent) -> Option<MouseScrollDelta> {
let x = event.delta_x(); let x = event.delta_x();
let y = event.delta_y(); let y = -event.delta_y();
match event.delta_mode() { match event.delta_mode() {
MouseWheelDeltaMode::Line => Some(MouseScrollDelta::LineDelta(x as f32, y as f32)), MouseWheelDeltaMode::Line => Some(MouseScrollDelta::LineDelta(x as f32, y as f32)),

View file

@ -31,7 +31,7 @@ pub fn mouse_position(event: &MouseEvent) -> LogicalPosition<f64> {
pub fn mouse_scroll_delta(event: &WheelEvent) -> Option<MouseScrollDelta> { pub fn mouse_scroll_delta(event: &WheelEvent) -> Option<MouseScrollDelta> {
let x = event.delta_x(); let x = event.delta_x();
let y = event.delta_y(); let y = -event.delta_y();
match event.delta_mode() { match event.delta_mode() {
WheelEvent::DOM_DELTA_LINE => Some(MouseScrollDelta::LineDelta(x as f32, y as f32)), WheelEvent::DOM_DELTA_LINE => Some(MouseScrollDelta::LineDelta(x as f32, y as f32)),