feat: remove tray behavior on app close, add platform detection and file extensions

This commit is contained in:
kangfenmao 2024-11-12 16:36:47 +08:00
parent 12a2c8c86d
commit ceae1fa3d0
3 changed files with 11 additions and 9 deletions

View File

@ -1,3 +1,7 @@
export const isMac = process.platform === 'darwin'
export const isWin = process.platform === 'win32'
export const isLinux = process.platform === 'linux'
export const imageExts = ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp'] export const imageExts = ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp']
export const videoExts = ['.mp4', '.avi', '.mov', '.wmv', '.flv', '.mkv'] export const videoExts = ['.mp4', '.avi', '.mov', '.wmv', '.flv', '.mkv']
export const audioExts = ['.mp3', '.wav', '.ogg', '.flac', '.aac'] export const audioExts = ['.mp3', '.wav', '.ogg', '.flac', '.aac']

View File

@ -3,7 +3,6 @@ import { app, BrowserWindow } from 'electron'
import installExtension, { REDUX_DEVTOOLS } from 'electron-devtools-installer' import installExtension, { REDUX_DEVTOOLS } from 'electron-devtools-installer'
import { registerIpc } from './ipc' import { registerIpc } from './ipc'
import { configManager } from './services/ConfigManager'
import { registerZoomShortcut } from './services/ShortcutService' import { registerZoomShortcut } from './services/ShortcutService'
import { TrayService } from './services/TrayService' import { TrayService } from './services/TrayService'
import { windowService } from './services/WindowService' import { windowService } from './services/WindowService'
@ -65,12 +64,6 @@ if (!app.requestSingleInstanceLock()) {
app.isQuitting = true app.isQuitting = true
}) })
app.on('window-all-closed', () => {
if (!configManager.isTray()) {
app.quit()
}
})
// In this file you can include the rest of your app"s specific main process // In this file you can include the rest of your app"s specific main process
// code. You can also put them in separate files and require them here. // code. You can also put them in separate files and require them here.
} }

View File

@ -1,5 +1,5 @@
import { is } from '@electron-toolkit/utils' import { is } from '@electron-toolkit/utils'
import { isTilingWindowManager } from '@main/utils/windowUtil' import { isLinux, isWin } from '@main/constant'
import { app, BrowserWindow, Menu, MenuItem, shell } from 'electron' import { app, BrowserWindow, Menu, MenuItem, shell } from 'electron'
import windowStateKeeper from 'electron-window-state' import windowStateKeeper from 'electron-window-state'
import { join } from 'path' import { join } from 'path'
@ -167,9 +167,14 @@ export class WindowService {
private setupWindowLifecycleEvents(mainWindow: BrowserWindow) { private setupWindowLifecycleEvents(mainWindow: BrowserWindow) {
mainWindow.on('close', (event) => { mainWindow.on('close', (event) => {
if (!configManager.isTray() && isTilingWindowManager()) { const notInTray = !configManager.isTray()
// Windows and Linux
if ((isWin || isLinux) && notInTray) {
return app.quit() return app.quit()
} }
// Mac
if (!app.isQuitting) { if (!app.isQuitting) {
event.preventDefault() event.preventDefault()
mainWindow.hide() mainWindow.hide()