Browse Source

Merge pull request #26707 from bruvzg/fix_macos_mscroll

Fix macOS accumulated mouse scroll events.
Rémi Verschelde 6 years ago
parent
commit
e60465dd75
1 changed files with 6 additions and 1 deletions
  1. 6 1
      platform/osx/os_osx.mm

+ 6 - 1
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);