From cbedc384b315dd5c9a188e430f091bac24c79dc5 Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Sun, 2 Jun 2024 18:32:40 +0300 Subject: [PATCH] Fix video OSD not hiding Sometimes (maybe in some browsers) onHideAnimationComplete is called on btnPause, and the event listener is disconnecting because it was connected with "once: true". As a result, the `hide` class is not added to the OSD element, allowing the user to interact with transparent elements. Don't connect listener with "once: true". --- src/controllers/playback/video/index.js | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js index 2fffb43ce5..fbe4c3cecb 100644 --- a/src/controllers/playback/video/index.js +++ b/src/controllers/playback/video/index.js @@ -323,18 +323,14 @@ export default function (view) { } function clearHideAnimationEventListeners(elem) { - dom.removeEventListener(elem, transitionEndEventName, onHideAnimationComplete, { - once: true - }); + elem.removeEventListener(transitionEndEventName, onHideAnimationComplete); } function onHideAnimationComplete(e) { const elem = e.target; if (elem != osdBottomElement) return; elem.classList.add('hide'); - dom.removeEventListener(elem, transitionEndEventName, onHideAnimationComplete, { - once: true - }); + elem.removeEventListener(transitionEndEventName, onHideAnimationComplete); } const _focus = debounce((focusElement) => focusManager.focus(focusElement), 50); @@ -364,9 +360,7 @@ export default function (view) { clearHideAnimationEventListeners(elem); elem.classList.add('videoOsdBottom-hidden'); - dom.addEventListener(elem, transitionEndEventName, onHideAnimationComplete, { - once: true - }); + elem.addEventListener(transitionEndEventName, onHideAnimationComplete); currentVisibleMenu = null; toggleSubtitleSync('hide');