Don't hide controls on focusout event

It was immediately hiding controls on some touch-enabled devices. It will now also wait 4s to close after tabbing out, instead of immediately.
This commit is contained in:
James 2018-09-26 14:48:10 +10:00
parent 5536e97482
commit 8bdd90a2a8

View File

@ -697,19 +697,16 @@ class Listeners {
elements.controls.pressed = ['mousedown', 'touchstart'].includes(event.type);
});
// Focus in/out on controls
this.bind(elements.controls, 'focusin focusout', event => {
// Show controls when they receive focus (e.g., when using keyboard tab key)
this.bind(elements.controls, 'focusin', event => {
const { config, elements, timers } = player;
const isFocusIn = event.type === 'focusin';
// Skip transition to prevent focus from scrolling the parent element
toggleClass(elements.controls, config.classNames.noTransition, isFocusIn);
toggleClass(elements.controls, config.classNames.noTransition, true);
// Toggle
ui.toggleControls.call(player, isFocusIn);
ui.toggleControls.call(player, true);
// If focusin, hide again after delay
if (isFocusIn) {
// Restore transition
setTimeout(() => {
toggleClass(elements.controls, config.classNames.noTransition, false);
@ -721,9 +718,8 @@ class Listeners {
// Clear timer
clearTimeout(timers.controls);
// Hide
// Hide again after delay
timers.controls = setTimeout(() => ui.toggleControls.call(player, false), delay);
}
});
// Mouse wheel for volume