summaryrefslogtreecommitdiff
path: root/platform/javascript
diff options
context:
space:
mode:
authormm <40793342+moiman100@users.noreply.github.com>2018-07-08 16:12:13 +0300
committerunknown <40793342+moiman100@users.noreply.github.com>2018-07-11 01:15:03 +0300
commitbd9c592c528034a58f4ede0bd2ba06760dd360b5 (patch)
tree4b8e95c7b69af6b1609bf5ee846f314312baa8ec /platform/javascript
parenta184126e8b2a74b47137b47001c1d11a092ccdaa (diff)
Fixed button mask behavior
Diffstat (limited to 'platform/javascript')
-rw-r--r--platform/javascript/os_javascript.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/platform/javascript/os_javascript.cpp b/platform/javascript/os_javascript.cpp
index c05ae03ec6..6d34b0da1f 100644
--- a/platform/javascript/os_javascript.cpp
+++ b/platform/javascript/os_javascript.cpp
@@ -461,7 +461,6 @@ EM_BOOL OS_JavaScript::wheel_callback(int p_event_type, const EmscriptenWheelEve
InputDefault *input = get_singleton()->input;
Ref<InputEventMouseButton> ev;
ev.instance();
- ev->set_button_mask(input->get_mouse_button_mask());
ev->set_position(input->get_mouse_position());
ev->set_global_position(ev->get_position());
@@ -484,10 +483,14 @@ EM_BOOL OS_JavaScript::wheel_callback(int p_event_type, const EmscriptenWheelEve
// Different browsers give wildly different delta values, and we can't
// interpret deltaMode, so use default value for wheel events' factor.
+ int button_flag = 1 << (ev->get_button_index() - 1);
+
ev->set_pressed(true);
+ ev->set_button_mask(input->get_mouse_button_mask() | button_flag);
input->parse_input_event(ev);
ev->set_pressed(false);
+ ev->set_button_mask(input->get_mouse_button_mask() & ~button_flag);
input->parse_input_event(ev);
return true;