mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Prevent Focus Loss When Skip Button is Pressed (#6413)
* Prevent Focus Loss When Skip Button is Pressed * Implement the suggested changes * Update index.js * Ensures focus shifts to the pause button * Apply suggested changes --------- Co-authored-by: rlauu <46294892+rlauu@users.noreply.github.com>
This commit is contained in:
parent
700e72b409
commit
4f17cebc02
3 changed files with 41 additions and 16 deletions
|
@ -304,11 +304,15 @@ export default function (view) {
|
|||
}
|
||||
|
||||
function slideDownToShow(elem) {
|
||||
clearHideAnimationEventListeners(elem);
|
||||
elem.classList.remove('hide');
|
||||
elem.classList.remove('osdHeader-hidden');
|
||||
}
|
||||
|
||||
function slideUpToHide(elem) {
|
||||
clearHideAnimationEventListeners(elem);
|
||||
elem.classList.add('osdHeader-hidden');
|
||||
elem.addEventListener(transitionEndEventName, onHideAnimationComplete);
|
||||
}
|
||||
|
||||
function clearHideAnimationEventListeners(elem) {
|
||||
|
@ -317,7 +321,7 @@ export default function (view) {
|
|||
|
||||
function onHideAnimationComplete(e) {
|
||||
const elem = e.target;
|
||||
if (elem != osdBottomElement) return;
|
||||
if (elem !== osdBottomElement && elem !== headerElement) return;
|
||||
elem.classList.add('hide');
|
||||
elem.removeEventListener(transitionEndEventName, onHideAnimationComplete);
|
||||
}
|
||||
|
@ -338,8 +342,17 @@ export default function (view) {
|
|||
_focus(focusElement);
|
||||
}
|
||||
toggleSubtitleSync();
|
||||
} else if (currentVisibleMenu === 'osd' && focusElement && !layoutManager.mobile) {
|
||||
_focus(focusElement);
|
||||
} else if (currentVisibleMenu === 'osd' && !layoutManager.mobile) {
|
||||
// If no focus element is provided, try to keep current focus if it's valid,
|
||||
// otherwise default to pause button
|
||||
if (!focusElement) {
|
||||
const currentFocus = document.activeElement;
|
||||
if (!currentFocus || !focusManager.isCurrentlyFocusable(currentFocus)) {
|
||||
focusElement = osdBottomElement.querySelector('.btnPause');
|
||||
}
|
||||
}
|
||||
|
||||
if (focusElement) _focus(focusElement);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -354,7 +367,8 @@ export default function (view) {
|
|||
toggleSubtitleSync('hide');
|
||||
|
||||
// Firefox does not blur by itself
|
||||
if (document.activeElement) {
|
||||
if (osdBottomElement.contains(document.activeElement)
|
||||
|| headerElement.contains(document.activeElement)) {
|
||||
document.activeElement.blur();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue