From da6acf2599e5ffd9f27346a66e6421e711a3ac15 Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Tue, 23 May 2023 19:37:44 +0800 Subject: [PATCH] Ensure screen saver blocker removed when window closed (#3557) * $ Extract method for stopping screen saver blocker * ! Ensure screen saver blocker removed when window closed * * Move beforeunload event listener removal to beforeDestroy --- .../ft-video-player/ft-video-player.js | 34 ++++++++----------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index f285e312a..da5d13cbc 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -361,6 +361,8 @@ export default defineComponent({ navigator.mediaSession.setActionHandler('play', () => this.player.play()) navigator.mediaSession.setActionHandler('pause', () => this.player.pause()) } + + window.addEventListener('beforeunload', this.stopPowerSaveBlocker) }, beforeDestroy: function () { document.removeEventListener('keydown', this.keyboardShortcutHandler) @@ -379,10 +381,8 @@ export default defineComponent({ navigator.mediaSession.playbackState = 'none' } - if (process.env.IS_ELECTRON && this.powerSaveBlocker !== null) { - const { ipcRenderer } = require('electron') - ipcRenderer.send(IpcChannels.STOP_POWER_SAVE_BLOCKER, this.powerSaveBlocker) - } + this.stopPowerSaveBlocker() + window.removeEventListener('beforeunload', this.stopPowerSaveBlocker) }, methods: { initializePlayer: async function () { @@ -595,11 +595,7 @@ export default defineComponent({ navigator.mediaSession.playbackState = 'none' } - if (process.env.IS_ELECTRON && this.powerSaveBlocker !== null) { - const { ipcRenderer } = require('electron') - ipcRenderer.send(IpcChannels.STOP_POWER_SAVE_BLOCKER, this.powerSaveBlocker) - this.powerSaveBlocker = null - } + this.stopPowerSaveBlocker() }) this.player.on('error', (error, message) => { @@ -609,11 +605,7 @@ export default defineComponent({ navigator.mediaSession.playbackState = 'none' } - if (process.env.IS_ELECTRON && this.powerSaveBlocker !== null) { - const { ipcRenderer } = require('electron') - ipcRenderer.send(IpcChannels.STOP_POWER_SAVE_BLOCKER, this.powerSaveBlocker) - this.powerSaveBlocker = null - } + this.stopPowerSaveBlocker() }) this.player.on('play', async () => { @@ -633,11 +625,7 @@ export default defineComponent({ navigator.mediaSession.playbackState = 'paused' } - if (process.env.IS_ELECTRON && this.powerSaveBlocker !== null) { - const { ipcRenderer } = require('electron') - ipcRenderer.send(IpcChannels.STOP_POWER_SAVE_BLOCKER, this.powerSaveBlocker) - this.powerSaveBlocker = null - } + this.stopPowerSaveBlocker() }) this.player.on(this.statsModalEventName, () => { @@ -2116,6 +2104,14 @@ export default defineComponent({ } }, + stopPowerSaveBlocker: function() { + if (process.env.IS_ELECTRON && this.powerSaveBlocker !== null) { + const { ipcRenderer } = require('electron') + ipcRenderer.send(IpcChannels.STOP_POWER_SAVE_BLOCKER, this.powerSaveBlocker) + this.powerSaveBlocker = null + } + }, + ...mapActions([ 'updateDefaultCaptionSettings', 'parseScreenshotCustomFileName',