From e9f489a6292c453d900284523e4ff0c0f67333a0 Mon Sep 17 00:00:00 2001 From: Jesper Alf Dam Date: Fri, 16 Aug 2019 14:27:12 +0200 Subject: [PATCH] Avoid recursion in Alt check on Firefox The Firefox workaround which checks for missing Alt key events may synthesise new KeyboardEvents. On these events, checkAlt should not be recursively triggered. Otherwise, we get "too much recursion" errors whenever the Alt key is pressed. --- core/input/keyboard.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/input/keyboard.js b/core/input/keyboard.js index 9dbc8d6e..d9c271c9 100644 --- a/core/input/keyboard.js +++ b/core/input/keyboard.js @@ -301,6 +301,9 @@ export default class Keyboard { // Firefox Alt workaround, see below _checkAlt(e) { + if (e.skipCheckAlt) { + return; + } if (e.altKey) { return; } @@ -315,6 +318,7 @@ export default class Keyboard { const event = new KeyboardEvent('keyup', { key: downList[code], code: code }); + event.skipCheckAlt = true; target.dispatchEvent(event); }); }