From d14db2627b5a4a01a9fd22c663abbaf96dbe9c6f Mon Sep 17 00:00:00 2001 From: Samuel <73540958+6c65726f79@users.noreply.github.com> Date: Sun, 13 Jun 2021 12:35:34 +0200 Subject: [PATCH] Remember Electron window state --- electron/package-lock.json | 69 +++++++++++++++++++++++++++++---- electron/package.json | 4 +- electron/src/index.ts | 13 ++++++- electron/user-preload-script.js | 2 +- 4 files changed, 77 insertions(+), 11 deletions(-) diff --git a/electron/package-lock.json b/electron/package-lock.json index 9cb3d84a..5a94e67d 100644 --- a/electron/package-lock.json +++ b/electron/package-lock.json @@ -10,8 +10,10 @@ "license": "MIT", "dependencies": { "@capacitor-community/electron": "1.4.2", + "@electron/remote": "^1.1.0", "custom-electron-titlebar": "^3.2.7", - "electron-updater": "^4.3.9" + "electron-updater": "^4.3.9", + "electron-window-state": "^5.0.3" }, "devDependencies": { "electron": "~13.1.2", @@ -108,6 +110,14 @@ "node": ">= 4.0.0" } }, + "node_modules/@electron/remote": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-1.1.0.tgz", + "integrity": "sha512-yr8gZTkIgJYKbFqExI4QZqMSjn1kL/us9Dl46+TH1EZdhgRtsJ6HDfdsIxu0QEc6Hv+DMAXs69rgquH+8FDk4w==", + "peerDependencies": { + "electron": ">= 10.0.0-beta.1" + } + }, "node_modules/@electron/universal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.0.4.tgz", @@ -1336,6 +1346,26 @@ "node": ">=10" } }, + "node_modules/electron-window-state": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/electron-window-state/-/electron-window-state-5.0.3.tgz", + "integrity": "sha512-1mNTwCfkolXl3kMf50yW3vE2lZj0y92P/HYWFBrb+v2S/pCka5mdwN3cagKm458A7NjndSwijynXgcLWRodsVg==", + "dependencies": { + "jsonfile": "^4.0.0", + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/electron-window-state/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -2298,9 +2328,9 @@ } }, "node_modules/normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", "engines": { "node": ">=8" } @@ -3518,6 +3548,12 @@ } } }, + "@electron/remote": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-1.1.0.tgz", + "integrity": "sha512-yr8gZTkIgJYKbFqExI4QZqMSjn1kL/us9Dl46+TH1EZdhgRtsJ6HDfdsIxu0QEc6Hv+DMAXs69rgquH+8FDk4w==", + "requires": {} + }, "@electron/universal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.0.4.tgz", @@ -4466,6 +4502,25 @@ } } }, + "electron-window-state": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/electron-window-state/-/electron-window-state-5.0.3.tgz", + "integrity": "sha512-1mNTwCfkolXl3kMf50yW3vE2lZj0y92P/HYWFBrb+v2S/pCka5mdwN3cagKm458A7NjndSwijynXgcLWRodsVg==", + "requires": { + "jsonfile": "^4.0.0", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -5193,9 +5248,9 @@ } }, "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" }, "npm-conf": { "version": "1.1.3", diff --git a/electron/package.json b/electron/package.json index fe66e3dc..3885bc98 100644 --- a/electron/package.json +++ b/electron/package.json @@ -16,8 +16,10 @@ }, "dependencies": { "@capacitor-community/electron": "1.4.2", + "@electron/remote": "^1.1.0", "custom-electron-titlebar": "^3.2.7", - "electron-updater": "^4.3.9" + "electron-updater": "^4.3.9", + "electron-window-state": "^5.0.3" }, "devDependencies": { "electron": "~13.1.2", diff --git a/electron/src/index.ts b/electron/src/index.ts index 994488ac..f2ca45b5 100644 --- a/electron/src/index.ts +++ b/electron/src/index.ts @@ -1,7 +1,9 @@ import { app, shell } from "electron"; import fs from "fs"; import { createCapacitorElectronApp } from "@capacitor-community/electron"; -import { autoUpdater } from "electron-updater" +import { autoUpdater } from "electron-updater"; +import windowStateKeeper from "electron-window-state"; +require('@electron/remote/main').initialize(); // The MainWindow object can be accessed via myCapacitorApp.getMainWindow() const myCapacitorApp = createCapacitorElectronApp({ @@ -48,9 +50,16 @@ if (!gotTheLock) { // initialization and is ready to create browser windows. // Some Electron APIs can only be used after this event occurs. app.on("ready", () => { + let mainWindowState = windowStateKeeper({ + defaultWidth: 990, + defaultHeight: 700 + }); myCapacitorApp.init(); - autoUpdater.checkForUpdatesAndNotify(); const mainWindow = myCapacitorApp.getMainWindow(); + mainWindow.setPosition(mainWindowState.x,mainWindowState.y); + mainWindow.setSize(mainWindowState.width,mainWindowState.height); + autoUpdater.checkForUpdatesAndNotify(); + mainWindowState.manage(mainWindow); if (mainWindow && openFiles.length>0) { mainWindow.webContents.on('did-finish-load', function() { mainWindow.webContents.send('file-open', openFiles) diff --git a/electron/user-preload-script.js b/electron/user-preload-script.js index 37e6b34a..a1c6e3b5 100644 --- a/electron/user-preload-script.js +++ b/electron/user-preload-script.js @@ -1,5 +1,5 @@ const { contextBridge,ipcRenderer,shell } = require('electron'); -const { app, net, Menu, MenuItem } = require('electron').remote +const { app, net, Menu, MenuItem } = require('@electron/remote'); const { Titlebar, Color } = require('custom-electron-titlebar'); const path = require('path'); let titleBar;