Skip to content
This repository was archived by the owner on Oct 11, 2022. It is now read-only.

Commit 6f6f4a9

Browse files
committed
Persist desktop app window state on reopen
Closes #3214
1 parent 640a811 commit 6f6f4a9

File tree

4 files changed

+34
-4
lines changed

4 files changed

+34
-4
lines changed

desktop/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
"dependencies": {
1414
"electron-is-dev": "^0.3.0",
1515
"electron-log": "^2.2.14",
16-
"electron-updater": "^2.21.4"
16+
"electron-updater": "^2.21.4",
17+
"electron-window-state": "^4.1.1"
1718
},
1819
"devDependencies": {
1920
"electron": "^1.8.4",

desktop/src/config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ module.exports = {
1717
'https://github.com/withspectrum/spectrum/blob/alpha/LICENSE',
1818
GITHUB_URL_ISSUES: 'https://github.com/withspectrum/spectrum/issues',
1919

20+
WINDOW_DEFAULT_HEIGHT: 800,
21+
WINDOW_DEFAULT_WIDTH: 1300,
2022
WINDOW_MIN_HEIGHT: 500,
2123
WINDOW_MIN_WIDTH: 770,
2224
WINDOW_BG_COLOR: '#F5F8FC',

desktop/src/main.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// @flow
22
const electron = require('electron');
3+
const windowStateKeeper = require('electron-window-state');
34
const { app, BrowserWindow } = electron;
45
const isDev = require('electron-is-dev');
56

@@ -21,12 +22,19 @@ function createWindow() {
2122
checkForUpdates();
2223
}
2324

24-
const { width, height } = electron.screen.getPrimaryDisplay().workAreaSize;
25+
let mainWindowState = windowStateKeeper({
26+
defaultWidth: CONFIG.WINDOW_DEFAULT_WIDTH,
27+
defaultHeight: CONFIG.WINDOW_DEFAULT_HEIGHT,
28+
});
29+
30+
const { width, height, x, y } = mainWindowState;
2531

2632
// Create the main browser window.
2733
mainWindow = new BrowserWindow({
2834
width,
2935
height,
36+
x,
37+
y,
3038
titleBarStyle: 'hiddenInset',
3139
minHeight: CONFIG.WINDOW_MIN_HEIGHT,
3240
minWidth: CONFIG.WINDOW_MIN_WIDTH,
@@ -57,9 +65,10 @@ function createWindow() {
5765

5866
// if main window is ready to show, show up the main window
5967
mainWindow.once('ready-to-show', () => {
60-
mainWindow && mainWindow.maximize();
6168
mainWindow && mainWindow.show();
6269
});
70+
71+
mainWindowState.manage(mainWindow);
6372
}
6473

6574
// This method will be called when Electron has finished

desktop/yarn.lock

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,10 @@ decamelize@^1.1.1, decamelize@^1.1.2:
462462
version "1.2.0"
463463
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
464464

465+
deep-equal@^1.0.1:
466+
version "1.0.1"
467+
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
468+
465469
deep-extend@~0.4.0:
466470
version "0.4.2"
467471
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
@@ -673,6 +677,14 @@ electron-updater@^2.21.4:
673677
semver "^5.5.0"
674678
source-map-support "^0.5.4"
675679

680+
electron-window-state@^4.1.1:
681+
version "4.1.1"
682+
resolved "https://registry.yarnpkg.com/electron-window-state/-/electron-window-state-4.1.1.tgz#6b34fdc31b38514dfec8b7c8f7b5d4addb67632d"
683+
dependencies:
684+
deep-equal "^1.0.1"
685+
jsonfile "^2.2.3"
686+
mkdirp "^0.5.1"
687+
676688
electron@^1.8.4:
677689
version "1.8.4"
678690
resolved "https://registry.yarnpkg.com/electron/-/electron-1.8.4.tgz#cca8d0e6889f238f55b414ad224f03e03b226a38"
@@ -1070,7 +1082,7 @@ json5@^0.5.1:
10701082
version "0.5.1"
10711083
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
10721084

1073-
jsonfile@^2.1.0:
1085+
jsonfile@^2.1.0, jsonfile@^2.2.3:
10741086
version "2.4.0"
10751087
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
10761088
optionalDependencies:
@@ -1221,6 +1233,12 @@ [email protected]:
12211233
dependencies:
12221234
minimist "0.0.8"
12231235

1236+
mkdirp@^0.5.1:
1237+
version "0.5.1"
1238+
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
1239+
dependencies:
1240+
minimist "0.0.8"
1241+
12241242
12251243
version "2.0.0"
12261244
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"

0 commit comments

Comments
 (0)