diff options
author | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2019-03-06 15:34:52 +0200 |
---|---|---|
committer | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2019-03-06 15:35:19 +0200 |
commit | 37f0a6d99a7e959f76a8b6c1691c157eb9ba5585 (patch) | |
tree | 50db6e87ba55ca6dec1095f5c7095d7812f31241 | |
parent | 9b5c6f539b0049cbcf12507167eb028013219c45 (diff) |
Fix macOS accumulated mouse scroll events.
-rw-r--r-- | platform/osx/os_osx.mm | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index d72e6038d4..fee20de804 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -1096,6 +1096,7 @@ static int remapKey(unsigned int key) { inline void sendScrollEvent(int button, double factor, int modifierFlags) { unsigned int mask = 1 << (button - 1); + Vector2 mouse_pos = Vector2(mouse_x, mouse_y); Ref<InputEventMouseButton> sc; sc.instance(); @@ -1104,14 +1105,18 @@ inline void sendScrollEvent(int button, double factor, int modifierFlags) { sc->set_button_index(button); sc->set_factor(factor); sc->set_pressed(true); - Vector2 mouse_pos = Vector2(mouse_x, mouse_y); sc->set_position(mouse_pos); sc->set_global_position(mouse_pos); button_mask |= mask; sc->set_button_mask(button_mask); OS_OSX::singleton->push_input(sc); + sc.instance(); + sc->set_button_index(button); + sc->set_factor(factor); sc->set_pressed(false); + sc->set_position(mouse_pos); + sc->set_global_position(mouse_pos); button_mask &= ~mask; sc->set_button_mask(button_mask); OS_OSX::singleton->push_input(sc); |