summaryrefslogtreecommitdiffstats
path: root/platform/javascript/os_javascript.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2018-12-14 23:31:52 +0100
committerGitHub <noreply@github.com>2018-12-14 23:31:52 +0100
commit57c3f6a94ba547cfb4c3bcfd7a3e2e784239fd4e (patch)
tree2d86291ab8b732297206b28cad8cfdea3e38f0a0 /platform/javascript/os_javascript.cpp
parent46f73c366df4377a69c26ee295db26956a90531b (diff)
parentbd9c592c528034a58f4ede0bd2ba06760dd360b5 (diff)
downloadredot-engine-57c3f6a94ba547cfb4c3bcfd7a3e2e784239fd4e.tar.gz
Merge pull request #20063 from moiman100/fix-button-mask
Unified button mask behavior across platforms
Diffstat (limited to 'platform/javascript/os_javascript.cpp')
-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 9250ca4903..2068fee9e0 100644
--- a/platform/javascript/os_javascript.cpp
+++ b/platform/javascript/os_javascript.cpp
@@ -452,7 +452,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());
@@ -475,10 +474,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;