diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/osx/gui/Window.mm | 13 | ||||
-rw-r--r-- | src/osx/gui/WindowPrivate.h | 2 |
2 files changed, 11 insertions, 4 deletions
diff --git a/src/osx/gui/Window.mm b/src/osx/gui/Window.mm index 6ed53701..f9891d86 100644 --- a/src/osx/gui/Window.mm +++ b/src/osx/gui/Window.mm @@ -125,8 +125,9 @@ void OsxWindowPrivate::OnMouseUp(MouseButton button, Point p, KeyModifier key_mo mouse_up_event_.Raise({button, TransformMousePoint(p), key_modifier}); } -void OsxWindowPrivate::OnMouseWheel(float delta, Point p, KeyModifier key_modifier) { - mouse_wheel_event_.Raise({delta, TransformMousePoint(p), key_modifier}); +void OsxWindowPrivate::OnMouseWheel(float delta, Point p, KeyModifier key_modifier, + bool horizontal) { + mouse_wheel_event_.Raise({delta, TransformMousePoint(p), key_modifier, horizontal}); } void OsxWindowPrivate::OnKeyDown(KeyCode key, KeyModifier key_modifier) { @@ -548,7 +549,13 @@ cru::platform::gui::KeyModifier GetKeyModifier(NSEvent* event) { auto key_modifier = GetKeyModifier(event); cru::platform::Point p(event.locationInWindow.x, event.locationInWindow.y); - _p->OnMouseWheel(static_cast<float>(event.scrollingDeltaY), p, key_modifier); + if (event.scrollingDeltaY) { + _p->OnMouseWheel(static_cast<float>(event.scrollingDeltaY), p, key_modifier, false); + } + + if (event.scrollingDeltaX) { + _p->OnMouseWheel(static_cast<float>(event.scrollingDeltaX), p, key_modifier, true); + } } namespace { diff --git a/src/osx/gui/WindowPrivate.h b/src/osx/gui/WindowPrivate.h index d2335e00..9e7ef2d7 100644 --- a/src/osx/gui/WindowPrivate.h +++ b/src/osx/gui/WindowPrivate.h @@ -47,7 +47,7 @@ class OsxWindowPrivate { void OnMouseMove(Point p); void OnMouseDown(MouseButton button, Point p, KeyModifier key_modifier); void OnMouseUp(MouseButton button, Point p, KeyModifier key_modifier); - void OnMouseWheel(float delta, Point p, KeyModifier key_modifier); + void OnMouseWheel(float delta, Point p, KeyModifier key_modifier, bool horizontal); void OnKeyDown(KeyCode key, KeyModifier key_modifier); void OnKeyUp(KeyCode key, KeyModifier key_modifier); |