From 3cbba77707bb5bccf64c2e8df1f43c0211aefa8f Mon Sep 17 00:00:00 2001 From: ortiza5 <43008712+ortiza5@users.noreply.github.com> Date: Sun, 14 Mar 2021 17:57:30 -0600 Subject: [PATCH] Clear keys from set when focus is lost --- js/spatial-navigation.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/js/spatial-navigation.js b/js/spatial-navigation.js index 259deb6..31e6342 100644 --- a/js/spatial-navigation.js +++ b/js/spatial-navigation.js @@ -1825,10 +1825,15 @@ exports.isHotkeyPressed = isHotkeyPressed; // Functions for handling keys down // ------------------------------------------ -function startKeyUpListener() { +function startListeners() { window.addEventListener("keyup", removeFromKeysDown); + + //* BUG-FIX: Changing tabs or windows using keyboard failed to clear the keys from the KEYS_DOWN set + window.addEventListener("blur", () => { + KEYS_DOWN.clear(); + }) } -exports.startKeyUpListener = startKeyUpListener; +exports.startListeners = startListeners; function removeFromKeysDown(e) { KEYS_DOWN.delete(e.key.toLowerCase()); @@ -2365,7 +2370,7 @@ function main() { function register() { window.removeEventListener("DOMContentLoaded", register); HELPER_FUNCTIONS.getSettings(); - HELPER_FUNCTIONS.startKeyUpListener(); + HELPER_FUNCTIONS.startListeners(); CONTROLLER.Controller([window]) .forEach(function (view) { return views.unshift(view); }); }