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:
commit
beb9bebce5
3 changed files with 23 additions and 12 deletions
|
@ -65,6 +65,9 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FIXME: TV layout will require special handling for navigation keys. But now field is not focusable
|
||||||
|
event.stopPropagation();
|
||||||
});
|
});
|
||||||
|
|
||||||
subtitleSyncTextField.blur = function() {
|
subtitleSyncTextField.blur = function() {
|
||||||
|
|
|
@ -1101,7 +1101,7 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
|
||||||
*/
|
*/
|
||||||
var clickedElement;
|
var clickedElement;
|
||||||
|
|
||||||
function onWindowKeyDown(e) {
|
function onKeyDown(e) {
|
||||||
clickedElement = e.srcElement;
|
clickedElement = e.srcElement;
|
||||||
|
|
||||||
var key = keyboardnavigation.getKeyName(e);
|
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) {
|
function onWindowMouseDown(e) {
|
||||||
clickedElement = e.srcElement;
|
clickedElement = e.srcElement;
|
||||||
lockOsd();
|
lockOsd();
|
||||||
|
@ -1343,9 +1350,11 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
|
||||||
var headerElement = document.querySelector('.skinHeader');
|
var headerElement = document.querySelector('.skinHeader');
|
||||||
var osdBottomElement = document.querySelector('.videoOsdBottom-maincontrols');
|
var osdBottomElement = document.querySelector('.videoOsdBottom-maincontrols');
|
||||||
|
|
||||||
|
nowPlayingPositionSlider.enableKeyboardDragging();
|
||||||
|
nowPlayingVolumeSlider.enableKeyboardDragging();
|
||||||
|
|
||||||
if (layoutManager.tv) {
|
if (layoutManager.tv) {
|
||||||
nowPlayingPositionSlider.classList.add('focusable');
|
nowPlayingPositionSlider.classList.add('focusable');
|
||||||
nowPlayingPositionSlider.enableKeyboardDragging();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
view.addEventListener('viewbeforeshow', function (e) {
|
view.addEventListener('viewbeforeshow', function (e) {
|
||||||
|
@ -1361,7 +1370,8 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
|
||||||
});
|
});
|
||||||
showOsd();
|
showOsd();
|
||||||
inputManager.on(window, onInputCommand);
|
inputManager.on(window, onInputCommand);
|
||||||
dom.addEventListener(window, 'keydown', onWindowKeyDown, {
|
document.addEventListener('keydown', onKeyDown);
|
||||||
|
dom.addEventListener(document, 'keydown', onKeyDownCapture, {
|
||||||
capture: true
|
capture: true
|
||||||
});
|
});
|
||||||
dom.addEventListener(window, window.PointerEvent ? 'pointerdown' : 'mousedown', onWindowMouseDown, {
|
dom.addEventListener(window, window.PointerEvent ? 'pointerdown' : 'mousedown', onWindowMouseDown, {
|
||||||
|
@ -1389,7 +1399,8 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
|
||||||
statsOverlay.enabled(false);
|
statsOverlay.enabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
dom.removeEventListener(window, 'keydown', onWindowKeyDown, {
|
document.removeEventListener('keydown', onKeyDown);
|
||||||
|
dom.removeEventListener(document, 'keydown', onKeyDownCapture, {
|
||||||
capture: true
|
capture: true
|
||||||
});
|
});
|
||||||
dom.removeEventListener(window, window.PointerEvent ? 'pointerdown' : 'mousedown', onWindowMouseDown, {
|
dom.removeEventListener(window, window.PointerEvent ? 'pointerdown' : 'mousedown', onWindowMouseDown, {
|
||||||
|
@ -1494,16 +1505,13 @@ define(['playbackManager', 'dom', 'inputManager', 'datetime', 'itemHelper', 'med
|
||||||
}, options);
|
}, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
function setVolume() {
|
|
||||||
playbackManager.setVolume(this.value, currentPlayer);
|
|
||||||
}
|
|
||||||
|
|
||||||
view.querySelector('.buttonMute').addEventListener('click', function () {
|
view.querySelector('.buttonMute').addEventListener('click', function () {
|
||||||
playbackManager.toggleMute(currentPlayer);
|
playbackManager.toggleMute(currentPlayer);
|
||||||
});
|
});
|
||||||
nowPlayingVolumeSlider.addEventListener('change', setVolume);
|
|
||||||
nowPlayingVolumeSlider.addEventListener('mousemove', setVolume);
|
nowPlayingVolumeSlider.addEventListener('input', (e) => {
|
||||||
nowPlayingVolumeSlider.addEventListener('touchmove', setVolume);
|
playbackManager.setVolume(e.target.value, currentPlayer);
|
||||||
|
});
|
||||||
|
|
||||||
nowPlayingPositionSlider.addEventListener('change', function () {
|
nowPlayingPositionSlider.addEventListener('change', function () {
|
||||||
var player = currentPlayer;
|
var player = currentPlayer;
|
||||||
|
|
|
@ -78,7 +78,7 @@ export function isNavigationKey(key) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function enable() {
|
export function enable() {
|
||||||
document.addEventListener('keydown', function (e) {
|
window.addEventListener('keydown', function (e) {
|
||||||
const key = getKeyName(e);
|
const key = getKeyName(e);
|
||||||
|
|
||||||
// Ignore navigation keys for non-TV
|
// Ignore navigation keys for non-TV
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue