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

Merge pull request #1496 from dmitrylyzo/keydown-bubbling

Rearrange keydown event handling
This commit is contained in:
dkanada 2020-07-01 02:06:54 +09:00 committed by GitHub
commit beb9bebce5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 12 deletions

View file

@ -1101,7 +1101,7 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
*/
var clickedElement;
function onWindowKeyDown(e) {
function onKeyDown(e) {
clickedElement = e.srcElement;
var key = keyboardnavigation.getKeyName(e);
@ -1215,6 +1215,13 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
}
}
function onKeyDownCapture() {
// Restart hide timer if OSD is currently visible
if (currentVisibleMenu) {
showOsd();
}
}
function onWindowMouseDown(e) {
clickedElement = e.srcElement;
lockOsd();
@ -1343,9 +1350,11 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
var headerElement = document.querySelector('.skinHeader');
var osdBottomElement = document.querySelector('.videoOsdBottom-maincontrols');
nowPlayingPositionSlider.enableKeyboardDragging();
nowPlayingVolumeSlider.enableKeyboardDragging();
if (layoutManager.tv) {
nowPlayingPositionSlider.classList.add('focusable');
nowPlayingPositionSlider.enableKeyboardDragging();
}
view.addEventListener('viewbeforeshow', function (e) {
@ -1361,7 +1370,8 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
});
showOsd();
inputManager.on(window, onInputCommand);
dom.addEventListener(window, 'keydown', onWindowKeyDown, {
document.addEventListener('keydown', onKeyDown);
dom.addEventListener(document, 'keydown', onKeyDownCapture, {
capture: true
});
dom.addEventListener(window, window.PointerEvent ? 'pointerdown' : 'mousedown', onWindowMouseDown, {
@ -1389,7 +1399,8 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
statsOverlay.enabled(false);
}
dom.removeEventListener(window, 'keydown', onWindowKeyDown, {
document.removeEventListener('keydown', onKeyDown);
dom.removeEventListener(document, 'keydown', onKeyDownCapture, {
capture: true
});
dom.removeEventListener(window, window.PointerEvent ? 'pointerdown' : 'mousedown', onWindowMouseDown, {
@ -1494,16 +1505,13 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
}, options);
}
function setVolume() {
playbackManager.setVolume(this.value, currentPlayer);
}
view.querySelector('.buttonMute').addEventListener('click', function () {
playbackManager.toggleMute(currentPlayer);
});
nowPlayingVolumeSlider.addEventListener('change', setVolume);
nowPlayingVolumeSlider.addEventListener('mousemove', setVolume);
nowPlayingVolumeSlider.addEventListener('touchmove', setVolume);
nowPlayingVolumeSlider.addEventListener('input', (e) => {
playbackManager.setVolume(e.target.value, currentPlayer);
});
nowPlayingPositionSlider.addEventListener('change', function () {
var player = currentPlayer;