From 53ce3f64ad4d82b1a990dfe42799df5abd1fffeb Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Mon, 29 Nov 2021 21:44:58 +0100 Subject: [PATCH] [HTML5] Fix multi-touch input handling. The code to populate the input data for WebAssembly was incorrectly overriding values when multiple touches were present due to wrong indexing. (cherry picked from commit 470496d8d40e2f476fac4f72c0b69748b5370936) --- platform/javascript/js/libs/library_godot_input.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/platform/javascript/js/libs/library_godot_input.js b/platform/javascript/js/libs/library_godot_input.js index 3c1c05e44e1..945dbba9020 100644 --- a/platform/javascript/js/libs/library_godot_input.js +++ b/platform/javascript/js/libs/library_godot_input.js @@ -424,9 +424,9 @@ const GodotInput = { for (let i = 0; i < touches.length; i++) { const touch = touches[i]; const pos = GodotInput.computePosition(touch, rect); - GodotRuntime.setHeapValue(coords + (i * 2), pos[0], 'double'); - GodotRuntime.setHeapValue(coords + (i * 2 + 8), pos[1], 'double'); - GodotRuntime.setHeapValue(ids + i, touch.identifier, 'i32'); + GodotRuntime.setHeapValue(coords + (i * 2) * 8, pos[0], 'double'); + GodotRuntime.setHeapValue(coords + (i * 2 + 1) * 8, pos[1], 'double'); + GodotRuntime.setHeapValue(ids + i * 4, touch.identifier, 'i32'); } func(type, touches.length); if (evt.cancelable) {