From 6824a5db7ad1f9adda630be7d52ede89685b402d Mon Sep 17 00:00:00 2001 From: Kendall Garner <17521368+kgarner7@users.noreply.github.com> Date: Sat, 6 Apr 2024 21:14:05 -0700 Subject: [PATCH] [enhancement]: also save fullscreen/maximize --- src/main/main.ts | 15 ++++++++++++++- src/main/preload/local-settings.ts | 1 + src/renderer/layouts/window-bar.tsx | 4 +++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/main.ts b/src/main/main.ts index b13d01c6..4fc26e1a 100644 --- a/src/main/main.ts +++ b/src/main/main.ts @@ -394,6 +394,16 @@ const createWindow = async (first = true) => { } if (!first || !startWindowMinimized) { + const maximized = store.get('maximized'); + const fullScreen = store.get('fullscreen'); + + if (maximized) { + mainWindow.maximize(); + } + if (fullScreen) { + mainWindow.setFullScreen(true); + } + mainWindow.show(); createWinThumbarButtons(); } @@ -407,7 +417,10 @@ const createWindow = async (first = true) => { let saved = false; mainWindow.on('close', (event) => { - store.set('bounds', mainWindow?.getBounds()); + store.set('bounds', mainWindow?.getNormalBounds()); + store.set('maximized', mainWindow?.isMaximized()); + store.set('fullscreen', mainWindow?.isFullScreen()); + if (!exitFromTray && store.get('window_exit_to_tray')) { if (isMacOS() && !forceQuit) { exitFromTray = true; diff --git a/src/main/preload/local-settings.ts b/src/main/preload/local-settings.ts index c6269411..5f20e574 100644 --- a/src/main/preload/local-settings.ts +++ b/src/main/preload/local-settings.ts @@ -64,6 +64,7 @@ const env = { SERVER_NAME: process.env.SERVER_NAME ?? '', SERVER_TYPE, SERVER_URL: process.env.SERVER_URL ?? 'http://', + START_MAXIMIZED: store.get('maximized'), }; export const localSettings = { diff --git a/src/renderer/layouts/window-bar.tsx b/src/renderer/layouts/window-bar.tsx index 5db9a497..12720744 100644 --- a/src/renderer/layouts/window-bar.tsx +++ b/src/renderer/layouts/window-bar.tsx @@ -13,6 +13,8 @@ import macMinHover from './assets/min-mac-hover.png'; import macMin from './assets/min-mac.png'; import appIcon from '../../../assets/icons/32x32.png'; +const localSettings = isElectron() ? window.electron.localSettings : null; + const WindowsContainer = styled.div` display: flex; align-items: center; @@ -228,7 +230,7 @@ export const WindowBar = () => { : 'Feishin'; document.title = title; - const [max, setMax] = useState(false); + const [max, setMax] = useState(localSettings?.env.START_MAXIMIZED || false); const handleMinimize = () => minimize();