1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Keep OSD visible when dialog is open

This commit is contained in:
Dmitry Lyzo 2020-07-10 15:15:46 +03:00
parent 8843f7cb93
commit 60a6023e77

View file

@ -45,6 +45,10 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
return null; return null;
} }
function getOpenedDialog() {
return document.querySelector('.dialogContainer .dialog.opened');
}
return function (view, params) { return function (view, params) {
function onVerticalSwipe(e, elem, data) { function onVerticalSwipe(e, elem, data) {
var player = currentPlayer; var player = currentPlayer;
@ -338,9 +342,7 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
function showOsd() { function showOsd() {
slideDownToShow(headerElement); slideDownToShow(headerElement);
showMainOsdControls(); showMainOsdControls();
if (!mouseIsDown) { resetIdle();
startOsdHideTimer();
}
} }
function hideOsd() { function hideOsd() {
@ -430,8 +432,8 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
// TODO: Move all idle-related code to `inputManager` or `idleManager` or `idleHelper` (per dialog thing) and listen event from there. // TODO: Move all idle-related code to `inputManager` or `idleManager` or `idleHelper` (per dialog thing) and listen event from there.
function resetIdle() { function resetIdle() {
// Restart hide timer if OSD is currently visible // Restart hide timer if OSD is currently visible and there is no opened dialog
if (currentVisibleMenu && !mouseIsDown) { if (currentVisibleMenu && !mouseIsDown && !getOpenedDialog()) {
startOsdHideTimer(); startOsdHideTimer();
} else { } else {
stopOsdHideTimer(); stopOsdHideTimer();
@ -954,7 +956,11 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
stats: true, stats: true,
suboffset: showSubOffset, suboffset: showSubOffset,
onOption: onSettingsOption onOption: onSettingsOption
}).finally(() => {
resetIdle();
}); });
setTimeout(resetIdle, 0);
} }
}); });
} }
@ -1023,7 +1029,11 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
if (index !== currentIndex) { if (index !== currentIndex) {
playbackManager.setAudioStreamIndex(index, player); playbackManager.setAudioStreamIndex(index, player);
} }
}).finally(() => {
resetIdle();
}); });
setTimeout(resetIdle, 0);
}); });
} }
@ -1067,7 +1077,11 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
} }
toggleSubtitleSync(); toggleSubtitleSync();
}).finally(() => {
resetIdle();
}); });
setTimeout(resetIdle, 0);
}); });
} }
@ -1118,7 +1132,7 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
case 'Escape': case 'Escape':
case 'Back': case 'Back':
// Ignore key when some dialog is opened // Ignore key when some dialog is opened
if (currentVisibleMenu === 'osd' && !document.querySelector('.dialogContainer')) { if (currentVisibleMenu === 'osd' && !getOpenedDialog()) {
hideOsd(); hideOsd();
e.stopPropagation(); e.stopPropagation();
} }