diff --git a/app/index.js b/app/index.js index 2e10af3652..ef41c044f0 100644 --- a/app/index.js +++ b/app/index.js @@ -15,6 +15,7 @@ const config = require('./config'); const marketmaker = require('./marketmaker'); const {loginWindowSize} = require('./constants'); const {isDevelopment} = require('./util-common'); +const rendererState = require('./renderer-state'); require('electron-unhandled')({ showDialog: !isDevelopment, @@ -178,8 +179,9 @@ app.on('window-all-closed', () => { }); app.on('before-quit', () => { - // TODO: Only save this when logged in. - // config.set('windowState', mainWindow.getBounds()); + if (rendererState.isLoggedIn) { + config.set('windowState', mainWindow.getBounds()); + } }); ipc.answerRenderer('start-marketmaker', async seedPhrase => { diff --git a/app/renderer-state.js b/app/renderer-state.js new file mode 100644 index 0000000000..2c5c404e4d --- /dev/null +++ b/app/renderer-state.js @@ -0,0 +1,13 @@ +'use strict'; +const electron = require('electron'); + +const {ipcMain: ipc} = electron; + +const rendererState = {}; + +ipc.on('app-container-state-updated', (event, state) => { + rendererState.appContainer = state; + rendererState.isLoggedIn = state.activeView !== 'Login' && state.activeView !== 'AppSettings'; +}); + +module.exports = rendererState; diff --git a/app/renderer/containers/Login.js b/app/renderer/containers/Login.js index 2dda15acc5..78165dac0a 100644 --- a/app/renderer/containers/Login.js +++ b/app/renderer/containers/Login.js @@ -18,8 +18,13 @@ const setAppWindowBounds = () => { win.setMaximizable(true); win.setFullScreenable(true); win.setMinimumSize(minWindowSize.width, minWindowSize.height); - setWindowBounds(config.get('windowState')); - win.center(); // TODO: Remove this when `setWindowBounds` handles positioning the window inside the window bounds + + const windowState = config.get('windowState'); + setWindowBounds(windowState); + const hasPositionState = Reflect.has(windowState, 'x'); + if (!hasPositionState) { + win.center(); + } }; const initApi = async seedPhrase => {