Browse Source

Only poll gamepads while connected

missionfloyd 2 years ago
parent
commit
df59b74ced
1 changed files with 4 additions and 1 deletions
  1. 4 1
      javascript/imageviewerGamepad.js

+ 4 - 1
javascript/imageviewerGamepad.js

@@ -1,7 +1,9 @@
+let gamepads = [];
+
 window.addEventListener('gamepadconnected', (e) => {
     const index = e.gamepad.index;
     let isWaiting = false;
-    setInterval(async() => {
+    gamepads[index] = setInterval(async() => {
         if (!opts.js_modal_lightbox_gamepad || isWaiting) return;
         const gamepad = navigator.getGamepads()[index];
         const xValue = gamepad.axes[0];
@@ -22,6 +24,7 @@ window.addEventListener('gamepadconnected', (e) => {
             isWaiting = false;
         }
     }, 10);
+    window.addEventListener('gamepaddisconnected', (e) => clearInterval(gamepads[e.gamepad.index]))
 });
 
 /*