From aabbb35583bed9c0091de33e70f11d525be23343 Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Sat, 4 Dec 2021 12:12:48 -0800 Subject: [PATCH] Added maximized window state code --- resources/cider-ui-tests/index.html | 7 ++++--- resources/cider-ui-tests/index.js | 3 ++- resources/cider-ui-tests/style.css | 4 ++++ resources/functions/cider-base.js | 28 ++++++++++++++++++++++++++++ 4 files changed, 38 insertions(+), 4 deletions(-) diff --git a/resources/cider-ui-tests/index.html b/resources/cider-ui-tests/index.html index 22064af3..c9c11a94 100644 --- a/resources/cider-ui-tests/index.html +++ b/resources/cider-ui-tests/index.html @@ -103,9 +103,10 @@
-
-
-
+
+
+
+
diff --git a/resources/cider-ui-tests/index.js b/resources/cider-ui-tests/index.js index f4b60891..d00b8d5f 100644 --- a/resources/cider-ui-tests/index.js +++ b/resources/cider-ui-tests/index.js @@ -123,7 +123,8 @@ const app = new Vue({ userinfo: { }, - menuOpened: false + menuOpened: false, + maximized: false }, page: "browse" }, diff --git a/resources/cider-ui-tests/style.css b/resources/cider-ui-tests/style.css index d3e667f5..cb9c1e88 100644 --- a/resources/cider-ui-tests/style.css +++ b/resources/cider-ui-tests/style.css @@ -513,6 +513,10 @@ input[type=range].web-slider::-webkit-slider-runnable-track { height: 100%; } +.app-chrome .app-chrome-item > .window-controls > div.minmax.restore { + background-image: var(--gfx-restoreBtn); +} + .app-chrome .app-chrome-item > .window-controls > div.minimize { background-image: var(--gfx-minBtn); background-position: center; diff --git a/resources/functions/cider-base.js b/resources/functions/cider-base.js index bc5891c9..0bfd2573 100644 --- a/resources/functions/cider-base.js +++ b/resources/functions/cider-base.js @@ -78,6 +78,34 @@ const CiderBase = { win.minimize(); }) + if (process.platform === "win32") { + var WND_STATE = { + MINIMIZED: 0, + NORMAL: 1, + MAXIMIZED: 2, + FULL_SCREEN: 3 + } + var wndState = WND_STATE.NORMAL + + win.on("resize", (_event) => { + const isMaximized = win.isMaximized() + const isMinimized = win.isMinimized() + const isFullScreen = win.isFullScreen() + const state = wndState; + if (isMinimized && state !== WND_STATE.MINIMIZED) { + wndState = WND_STATE.MINIMIZED + } else if (isFullScreen && state !== WND_STATE.FULL_SCREEN) { + wndState = WND_STATE.FULL_SCREEN + } else if (isMaximized && state !== WND_STATE.MAXIMIZED) { + wndState = WND_STATE.MAXIMIZED + win.webContents.executeJavaScript(`app.chrome.maximized = true`) + } else if (state !== WND_STATE.NORMAL) { + wndState = WND_STATE.NORMAL + win.webContents.executeJavaScript(`app.chrome.maximized = false`) + } + }) + } + return win }, async InitWebServer() {