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

Merge pull request #278 from DrPandemic/keyboard-shortcuts

New keyboard shortcuts
This commit is contained in:
Anthony Lavado 2019-05-05 08:43:14 -04:00 committed by GitHub
commit 58dfadccbe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 47 additions and 22 deletions

View file

@ -534,7 +534,7 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med
view.querySelector(".btnFullscreen").setAttribute("title", globalize.translate("ExitFullscreen")); view.querySelector(".btnFullscreen").setAttribute("title", globalize.translate("ExitFullscreen"));
view.querySelector(".btnFullscreen i").innerHTML = ""; view.querySelector(".btnFullscreen i").innerHTML = "";
} else { } else {
view.querySelector(".btnFullscreen").setAttribute("title", globalize.translate("Fullscreen")); view.querySelector(".btnFullscreen").setAttribute("title", globalize.translate("Fullscreen") + " (f)");
view.querySelector(".btnFullscreen i").innerHTML = ""; view.querySelector(".btnFullscreen i").innerHTML = "";
} }
} }
@ -718,7 +718,14 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med
} }
function updatePlayPauseState(isPaused) { function updatePlayPauseState(isPaused) {
view.querySelector(".btnPause i").innerHTML = isPaused ? "" : ""; var button = view.querySelector(".btnPause i");
if (isPaused) {
button.innerHTML = "";
button.setAttribute("title", globalize.translate("ButtonPlay") + " (k)");
} else {
button.innerHTML = "";
button.setAttribute("title", globalize.translate("ButtonPause") + " (k)");
}
} }
function updatePlayerStateInternal(event, player, state) { function updatePlayerStateInternal(event, player, state) {
@ -841,10 +848,10 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med
} }
if (isMuted) { if (isMuted) {
view.querySelector(".buttonMute").setAttribute("title", globalize.translate("Unmute")); view.querySelector(".buttonMute").setAttribute("title", globalize.translate("Unmute") + " (m)");
view.querySelector(".buttonMute i").innerHTML = ""; view.querySelector(".buttonMute i").innerHTML = "";
} else { } else {
view.querySelector(".buttonMute").setAttribute("title", globalize.translate("Mute")); view.querySelector(".buttonMute").setAttribute("title", globalize.translate("Mute") + " (m)");
view.querySelector(".buttonMute i").innerHTML = ""; view.querySelector(".buttonMute i").innerHTML = "";
} }
@ -1050,43 +1057,61 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med
} }
function onWindowKeyDown(e) { function onWindowKeyDown(e) {
if (!currentVisibleMenu && (32 === e.keyCode || 13 === e.keyCode)) { if (!currentVisibleMenu && 32 === e.keyCode) {
playbackManager.playPause(currentPlayer); playbackManager.playPause(currentPlayer);
return void showOsd(); return void showOsd();
} }
switch (e.key) { switch (e.key) {
case "f": case "k":
if (!e.ctrlKey) { playbackManager.playPause(currentPlayer);
playbackManager.toggleFullscreen(currentPlayer); showOsd();
} break;
case "l":
case "ArrowRight":
case "Right":
playbackManager.fastForward(currentPlayer);
showOsd();
break;
case "j":
case "ArrowLeft":
case "Left":
playbackManager.rewind(currentPlayer);
showOsd();
break;
case "f":
if (!e.ctrlKey && !e.metaKey) {
playbackManager.toggleFullscreen(currentPlayer);
showOsd();
}
break; break;
case "m": case "m":
playbackManager.toggleMute(currentPlayer); playbackManager.toggleMute(currentPlayer);
showOsd();
break; break;
case "ArrowLeft":
case "Left":
case "NavigationLeft": case "NavigationLeft":
case "GamepadDPadLeft": case "GamepadDPadLeft":
case "GamepadLeftThumbstickLeft": case "GamepadLeftThumbstickLeft":
if (e.shiftKey) { // Ignores gamepad events that are always triggered, even when not focused.
if (document.hasFocus()) {
playbackManager.rewind(currentPlayer); playbackManager.rewind(currentPlayer);
showOsd();
} }
break; break;
case "ArrowRight":
case "Right":
case "NavigationRight": case "NavigationRight":
case "GamepadDPadRight": case "GamepadDPadRight":
case "GamepadLeftThumbstickRight": case "GamepadLeftThumbstickRight":
if (e.shiftKey) { // Ignores gamepad events that are always triggered, even when not focused.
if (document.hasFocus()) {
playbackManager.fastForward(currentPlayer); playbackManager.fastForward(currentPlayer);
showOsd();
} }
} }
} }

View file

@ -37,7 +37,7 @@
<i class="xlargePaperIconButton md-icon">&#xE045;</i> <i class="xlargePaperIconButton md-icon">&#xE045;</i>
</button> </button>
<button is="paper-icon-button-light" class="btnRewind" title="${Rewind}"> <button is="paper-icon-button-light" class="btnRewind" title="${Rewind} (j)">
<i class="xlargePaperIconButton md-icon">&#xE020;</i> <i class="xlargePaperIconButton md-icon">&#xE020;</i>
</button> </button>
@ -45,7 +45,7 @@
<i class="xlargePaperIconButton md-icon">&#xE034;</i> <i class="xlargePaperIconButton md-icon">&#xE034;</i>
</button> </button>
<button is="paper-icon-button-light" class="btnFastForward" title="${FastForward}"> <button is="paper-icon-button-light" class="btnFastForward" title="${FastForward} (l)">
<i class="xlargePaperIconButton md-icon">&#xE01F;</i> <i class="xlargePaperIconButton md-icon">&#xE01F;</i>
</button> </button>
@ -63,7 +63,7 @@
<button is="paper-icon-button-light" class="btnVideoOsdSettings hide autoSize" title="${Settings}"> <button is="paper-icon-button-light" class="btnVideoOsdSettings hide autoSize" title="${Settings}">
<i class="largePaperIconButton md-icon">&#xE8B8;</i> <i class="largePaperIconButton md-icon">&#xE8B8;</i>
</button> </button>
<button is="paper-icon-button-light" class="btnFullscreen hide autoSize" title="${Fullscreen}"> <button is="paper-icon-button-light" class="btnFullscreen hide autoSize" title="${Fullscreen} (f)">
<i class="xlargePaperIconButton md-icon">&#xE5D0;</i> <i class="xlargePaperIconButton md-icon">&#xE5D0;</i>
</button> </button>
<button is="paper-icon-button-light" class="btnPip hide autoSize" title="${PictureInPicture}"> <button is="paper-icon-button-light" class="btnPip hide autoSize" title="${PictureInPicture}">
@ -73,7 +73,7 @@
<div class="osdTimeText"><span class="osdPositionText"></span><span class="osdDurationText"></span><span class="endsAtText"></span></div> <div class="osdTimeText"><span class="osdPositionText"></span><span class="osdDurationText"></span><span class="endsAtText"></span></div>
<div class="volumeButtons hide-mouse-idle-tv"> <div class="volumeButtons hide-mouse-idle-tv">
<button is="paper-icon-button-light" class="buttonMute autoSize" title="${Mute}"> <button is="paper-icon-button-light" class="buttonMute autoSize" title="${Mute} (m)">
<i class="xlargePaperIconButton md-icon">&#xE050;</i> <i class="xlargePaperIconButton md-icon">&#xE050;</i>
</button> </button>
<div class="sliderContainer osdVolumeSliderContainer"> <div class="sliderContainer osdVolumeSliderContainer">