diff --git a/common/views/Player/Player.svelte b/common/views/Player/Player.svelte index e873b66..1495256 100644 --- a/common/views/Player/Player.svelte +++ b/common/views/Player/Player.svelte @@ -17,6 +17,7 @@ import Keybinds, { loadWithDefaults, condition } from 'svelte-keybinds' import { SUPPORTS } from '@/modules/support.js' import 'rvfc-polyfill' + import IPC from '@/modules/ipc.js' const emit = createEventDispatcher() @@ -263,17 +264,19 @@ function toggleMute () { muted = !muted } - let visibilityPaused = true - document.addEventListener('visibilitychange', () => { + const handleVisibility = visibility => { if (!video?.ended && $settings.playerPause && !pip) { - if (document.visibilityState === 'hidden') { + if (visibility === 'hidden') { visibilityPaused = paused paused = true } else { if (!visibilityPaused) paused = false } } - }) + } + let visibilityPaused = true + document.addEventListener('visibilitychange', () => handleVisibility(document.visibilityState)) + IPC.on('visibilitychange', handleVisibility) function tryPlayNext () { if ($settings.playerAutoplay && !state.value) playNext() } diff --git a/common/webpack.config.cjs b/common/webpack.config.cjs index 6006cb4..47be4f7 100644 --- a/common/webpack.config.cjs +++ b/common/webpack.config.cjs @@ -88,7 +88,7 @@ module.exports = (parentDir, alias = {}, aliasFields = 'browser', filename = 'ap ${htmlWebpackPlugin.tags.headTags} - + ${htmlWebpackPlugin.tags.bodyTags} diff --git a/electron/src/main/main.js b/electron/src/main/main.js index 0b358ec..cd97ad6 100644 --- a/electron/src/main/main.js +++ b/electron/src/main/main.js @@ -64,6 +64,9 @@ function createWindow () { webtorrentWindow.webContents.openDevTools() }) + mainWindow.on('minimize', () => mainWindow.webContents.postMessage('visibilitychange', 'hidden')) + mainWindow.on('restore', () => mainWindow.webContents.postMessage('visibilitychange', 'visible')) + mainWindow.on('closed', () => { mainWindow = null try {