From a7a85b5022f20380de59e8a8d8c9ab3b651875a3 Mon Sep 17 00:00:00 2001 From: Guru Prasad Srinivasa Date: Mon, 30 Mar 2020 20:28:13 -0400 Subject: [PATCH 1/2] Fixed keyboard shortcuts not triggering early-listeners --- src/js/listeners.js | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/js/listeners.js b/src/js/listeners.js index cd4680839..6349ae3e8 100644 --- a/src/js/listeners.js +++ b/src/js/listeners.js @@ -47,7 +47,10 @@ class Listeners { // Seek by the number keys const seekByKey = () => { // Divide the max duration into 10th's and times by the number value - player.currentTime = (player.duration / 10) * (code - 48); + const target = (player.duration / 10) * (code - 48); + this.proxy(event, () => { + player.currentTime = target + }, 'seek') }; // Handle the key on keydown @@ -100,52 +103,56 @@ class Listeners { case 75: // Space and K key if (!repeat) { - silencePromise(player.togglePlay()); + this.proxy(event, () => silencePromise(player.togglePlay()), 'play') } break; case 38: // Arrow up - player.increaseVolume(0.1); + this.proxy(event, () => player.increaseVolume(0.1), 'volume') break; case 40: // Arrow down - player.decreaseVolume(0.1); + this.proxy(event, () => player.decreaseVolume(0.1), 'volume') break; case 77: // M key if (!repeat) { - player.muted = !player.muted; + this.proxy(event, () => { + player.muted = !player.muted + }, 'mute') } break; case 39: // Arrow forward - player.forward(); + this.proxy(event, player.forward, 'fastForward') break; case 37: // Arrow back - player.rewind(); + this.proxy(event, player.rewind, 'rewind') break; case 70: // F key - player.fullscreen.toggle(); + this.proxy(event, () => player.fullscreen.toggle(), 'fullscreen') break; case 67: // C key if (!repeat) { - player.toggleCaptions(); + this.proxy(event, () => player.toggleCaptions(), 'captions') } break; case 76: // L key - player.loop = !player.loop; + this.proxy(event, () => { + player.loop = !player.loop + }, 'loop') break; /* case 73: @@ -167,7 +174,7 @@ class Listeners { // Escape is handle natively when in full screen // So we only need to worry about non native if (code === 27 && !player.fullscreen.usingNative && player.fullscreen.active) { - player.fullscreen.toggle(); + this.proxy(event, () => player.fullscreen.toggle(), 'fullscreen') } // Store last code for next cycle From e3cf5159c70d084a865bb1488343cd65a7096661 Mon Sep 17 00:00:00 2001 From: Guru Prasad Srinivasa Date: Mon, 24 Feb 2020 07:06:45 -0500 Subject: [PATCH 2/2] Incorporated reviews and fixed coding standards violations --- src/js/listeners.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/js/listeners.js b/src/js/listeners.js index 6349ae3e8..a3f852418 100644 --- a/src/js/listeners.js +++ b/src/js/listeners.js @@ -103,18 +103,18 @@ class Listeners { case 75: // Space and K key if (!repeat) { - this.proxy(event, () => silencePromise(player.togglePlay()), 'play') + this.proxy(event, () => silencePromise(player.togglePlay()), 'play'); } break; case 38: // Arrow up - this.proxy(event, () => player.increaseVolume(0.1), 'volume') + this.proxy(event, () => player.increaseVolume(0.1), 'volume'); break; case 40: // Arrow down - this.proxy(event, () => player.decreaseVolume(0.1), 'volume') + this.proxy(event, () => player.decreaseVolume(0.1), 'volume'); break; case 77: @@ -128,23 +128,23 @@ class Listeners { case 39: // Arrow forward - this.proxy(event, player.forward, 'fastForward') + this.proxy(event, player.forward, 'fastForward'); break; case 37: // Arrow back - this.proxy(event, player.rewind, 'rewind') + this.proxy(event, player.rewind, 'rewind'); break; case 70: // F key - this.proxy(event, () => player.fullscreen.toggle(), 'fullscreen') + this.proxy(event, player.fullscreen.toggle, 'fullscreen'); break; case 67: // C key if (!repeat) { - this.proxy(event, () => player.toggleCaptions(), 'captions') + this.proxy(event, player.toggleCaptions, 'captions'); } break; @@ -174,7 +174,7 @@ class Listeners { // Escape is handle natively when in full screen // So we only need to worry about non native if (code === 27 && !player.fullscreen.usingNative && player.fullscreen.active) { - this.proxy(event, () => player.fullscreen.toggle(), 'fullscreen') + this.proxy(event, player.fullscreen.toggle, 'fullscreen'); } // Store last code for next cycle