diff --git a/src/renderer/components/PlayerSettings/PlayerSettings.vue b/src/renderer/components/PlayerSettings/PlayerSettings.vue index 47840aa22e60c..33d6c230269c6 100644 --- a/src/renderer/components/PlayerSettings/PlayerSettings.vue +++ b/src/renderer/components/PlayerSettings/PlayerSettings.vue @@ -81,6 +81,7 @@ :value="defaultViewingMode" :select-names="viewingModeNames" :select-values="viewingModeValues" + :tooltip="t('Settings.Player Settings.Default Viewing Mode.Tooltip')" :icon="['fas', 'expand']" @change="updateDefaultViewingMode" /> @@ -405,10 +406,12 @@ const viewingModeNames = computed(() => { t('Settings.General Settings.Thumbnail Preference.Default'), t('Settings.Player Settings.Default Viewing Mode.Theater'), t('Video.Player.Full Window'), + t('Settings.Player Settings.Default Viewing Mode.Full Window (Always On)'), ...process.env.IS_ELECTRON ? [ t('Settings.Player Settings.Default Viewing Mode.Full Screen'), + t('Settings.Player Settings.Default Viewing Mode.Full Screen (Always On)'), t('Settings.Player Settings.Default Viewing Mode.Picture in Picture') ] : [] @@ -428,9 +431,14 @@ const viewingModeValues = computed(() => { 'default', 'theatre', 'fullwindow', + 'fullwindow_always_on', ...process.env.IS_ELECTRON - ? ['fullscreen', 'pip'] + ? [ + 'fullscreen', + 'fullscreen_always_on', + 'pip', + ] : [] ] diff --git a/src/renderer/views/Watch/Watch.js b/src/renderer/views/Watch/Watch.js index b8ca682fb88c9..f52c9a4383e28 100644 --- a/src/renderer/views/Watch/Watch.js +++ b/src/renderer/views/Watch/Watch.js @@ -369,6 +369,7 @@ export default defineComponent({ this.checkIfTimestamp() this.checkIfPlaylist() + this.setViewingModeOnRouteChange() switch (this.backendPreference) { case 'local': @@ -460,9 +461,11 @@ export default defineComponent({ this.useTheatreMode = this.theatrePossible break case 'fullscreen': + case 'fullscreen_always_on': this.startNextVideoInFullscreen = true break case 'fullwindow': + case 'fullwindow_always_on': this.startNextVideoInFullwindow = true break case 'pip': @@ -470,6 +473,17 @@ export default defineComponent({ } }, + setViewingModeOnRouteChange: function () { + switch (this.defaultViewingMode) { + case 'fullscreen_always_on': + this.startNextVideoInFullscreen = true + break + case 'fullwindow_always_on': + this.startNextVideoInFullwindow = true + break + } + }, + changeTimestamp: function (timestamp) { const player = this.$refs.player diff --git a/static/locales/en-US.yaml b/static/locales/en-US.yaml index f7384a4400b14..7e6bef0557638 100644 --- a/static/locales/en-US.yaml +++ b/static/locales/en-US.yaml @@ -445,6 +445,9 @@ Settings: Full Screen: Full Screen Picture in Picture: Picture in Picture External Player: External Player ({externalPlayerName}) + Full Window (Always On): Full Window (Always On) + Full Screen (Always On): Full Screen (Always On) + Tooltip: Most default viewing modes are only applied at the start of each watch session. Changes made during the session persist until it ends. Always-on viewing modes are applied whenever you switch to a new video, regardless of any viewing mode changes made when viewing the previous video. Scroll Volume Over Video Player: Scroll Volume Over Video Player Scroll Playback Rate Over Video Player: Scroll Playback Rate Over Video Player Skip by Scrolling Over Video Player: Skip by Scrolling Over Video Player