Skip to content

Commit 76008e8

Browse files
committed
Remember and Recall window layout so that position+size persist
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
1 parent e40c690 commit 76008e8

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

electron/src/electron-main.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ const tray = require('./tray');
3030

3131
const VectorMenu = require('./vectormenu');
3232

33+
const windowStateKeeper = require('electron-window-state');
34+
3335
let vectorConfig = {};
3436
try {
3537
vectorConfig = require('../../webapp/config.json');
@@ -186,11 +188,21 @@ electron.app.on('ready', () => {
186188
process.platform == 'win32' ? 'ico' : 'png'
187189
);
188190

191+
// Load the previous window state with fallback to defaults
192+
let mainWindowState = windowStateKeeper({
193+
defaultWidth: 1024,
194+
defaultHeight: 768,
195+
});
196+
189197
mainWindow = new electron.BrowserWindow({
190198
icon: icon_path,
191-
width: 1024, height: 768,
192199
show: false,
193200
autoHideMenuBar: true,
201+
202+
x: mainWindowState.x,
203+
y: mainWindowState.y,
204+
width: mainWindowState.width,
205+
height: mainWindowState.height,
194206
});
195207
mainWindow.loadURL(`file://${__dirname}/../../webapp/index.html`);
196208
electron.Menu.setApplicationMenu(VectorMenu);
@@ -226,6 +238,8 @@ electron.app.on('ready', () => {
226238
onLinkContextMenu(ev, params);
227239
}
228240
});
241+
242+
mainWindowState.manage(mainWindow);
229243
});
230244

231245
electron.app.on('window-all-closed', () => {

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@
9696
"css-raw-loader": "^0.1.1",
9797
"electron-builder": "^11.2.4",
9898
"electron-builder-squirrel-windows": "^11.2.1",
99+
"electron-window-state": "^4.1.0",
99100
"emojione": "^2.2.7",
100101
"eslint": "^3.14.0",
101102
"eslint-config-google": "^0.7.1",

0 commit comments

Comments
 (0)