From e28b55721d527fc0bd7fdb6a607d8598c04a65e6 Mon Sep 17 00:00:00 2001 From: Steve Hoffing Date: Sun, 9 Jun 2024 13:34:12 -0400 Subject: [PATCH 1/2] play/pause when Enter is pressed on non-dragging position slider --- src/controllers/playback/video/index.js | 4 ++++ src/elements/emby-slider/emby-slider.js | 19 +++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js index fbe4c3cecb..5f7dfed23a 100644 --- a/src/controllers/playback/video/index.js +++ b/src/controllers/playback/video/index.js @@ -1775,6 +1775,10 @@ export default function (view) { } }); + nowPlayingPositionSlider.addEventListener('playpause', function () { + playbackManager.playPause(currentPlayer); + }); + nowPlayingPositionSlider.updateBubbleHtml = function(bubble, value) { showOsd(); diff --git a/src/elements/emby-slider/emby-slider.js b/src/elements/emby-slider/emby-slider.js index 8c572f6474..9813d7cdaf 100644 --- a/src/elements/emby-slider/emby-slider.js +++ b/src/elements/emby-slider/emby-slider.js @@ -521,6 +521,19 @@ function stepKeyboard(elem, delta) { elem.dispatchEvent(event); } +/** + * Play or pause video. + * + * @param {Object} elem slider itself + */ +function playPauseKeyboard(elem) { + const event = new Event('playpause', { + bubbles: true, + cancelable: false + }); + elem.dispatchEvent(event); +} + /** * Handle KeyDown event */ @@ -541,9 +554,11 @@ function onKeyDown(e) { case 'Enter': if (this.keyboardDragging) { finishKeyboardDragging(this); - e.preventDefault(); - e.stopPropagation(); + } else { + playPauseKeyboard(this); } + e.preventDefault(); + e.stopPropagation(); break; } } From 5ef0428bbab5189b888253f853d13a612a550592 Mon Sep 17 00:00:00 2001 From: Steve Hoffing Date: Sun, 9 Jun 2024 16:03:10 -0400 Subject: [PATCH 2/2] use a 'keydown' listener in video/index.js instead --- src/controllers/playback/video/index.js | 9 +++++++-- src/elements/emby-slider/emby-slider.js | 19 ++----------------- 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js index 5f7dfed23a..50723a0802 100644 --- a/src/controllers/playback/video/index.js +++ b/src/controllers/playback/video/index.js @@ -1775,8 +1775,13 @@ export default function (view) { } }); - nowPlayingPositionSlider.addEventListener('playpause', function () { - playbackManager.playPause(currentPlayer); + nowPlayingPositionSlider.addEventListener('keydown', function (e) { + if (e.defaultPrevented) return; + + const key = keyboardnavigation.getKeyName(e); + if (key === 'Enter') { + playbackManager.playPause(currentPlayer); + } }); nowPlayingPositionSlider.updateBubbleHtml = function(bubble, value) { diff --git a/src/elements/emby-slider/emby-slider.js b/src/elements/emby-slider/emby-slider.js index 9813d7cdaf..8c572f6474 100644 --- a/src/elements/emby-slider/emby-slider.js +++ b/src/elements/emby-slider/emby-slider.js @@ -521,19 +521,6 @@ function stepKeyboard(elem, delta) { elem.dispatchEvent(event); } -/** - * Play or pause video. - * - * @param {Object} elem slider itself - */ -function playPauseKeyboard(elem) { - const event = new Event('playpause', { - bubbles: true, - cancelable: false - }); - elem.dispatchEvent(event); -} - /** * Handle KeyDown event */ @@ -554,11 +541,9 @@ function onKeyDown(e) { case 'Enter': if (this.keyboardDragging) { finishKeyboardDragging(this); - } else { - playPauseKeyboard(this); + e.preventDefault(); + e.stopPropagation(); } - e.preventDefault(); - e.stopPropagation(); break; } }