Merge pull request #55342 from Faless/js/4.x_input_fix_focus_iframe

This commit is contained in:
Rémi Verschelde 2021-11-26 10:42:06 +01:00 committed by GitHub
commit 1b9fb5c969
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -393,7 +393,9 @@ const GodotInput = {
const rect = canvas.getBoundingClientRect();
const pos = GodotInput.computePosition(evt, rect);
const modifiers = GodotInput.getModifiers(evt);
if (p_pressed && document.activeElement !== GodotConfig.canvas) {
// Since the event is consumed, focus manually.
// NOTE: The iframe container may not have focus yet, so focus even when already active.
if (p_pressed) {
GodotConfig.canvas.focus();
}
if (func(p_pressed, evt.button, pos[0], pos[1], modifiers)) {
@ -412,7 +414,9 @@ const GodotInput = {
const func = GodotRuntime.get_func(callback);
const canvas = GodotConfig.canvas;
function touch_cb(type, evt) {
if (type === 0 && document.activeElement !== GodotConfig.canvas) {
// Since the event is consumed, focus manually.
// NOTE: The iframe container may not have focus yet, so focus even when already active.
if (type === 0) {
GodotConfig.canvas.focus();
}
const rect = canvas.getBoundingClientRect();