diff --git a/app/main.development.js b/app/main.development.js index c125e6c3..9089ea58 100644 --- a/app/main.development.js +++ b/app/main.development.js @@ -8,6 +8,10 @@ import AppTray from './main/createWindow/AppTray' import autoStart from './main/createWindow/autoStart' import initAutoUpdater from './initAutoUpdater' +import { + WINDOW_WIDTH, +} from 'main/constants/ui' + const iconSrc = { DEFAULT: `${__dirname}/tray_icon.png`, darwin: `${__dirname}/tray_iconTemplate@2x.png`, @@ -38,12 +42,27 @@ const setupEnvVariables = () => { } app.whenReady().then(() => { + // We cannot require the screen module until the app is ready. + const { screen } = require('electron') + setupEnvVariables() mainWindow = createMainWindow({ isDev, src: `file://${__dirname}/main/index.html`, // Main window html }) + + mainWindow.on('show', (event) => { + const cursorScreenPoint = screen.getCursorScreenPoint() + const nearestDisplay = screen.getDisplayNearestPoint(cursorScreenPoint) + + const goalWidth = WINDOW_WIDTH + const goalX = Math.floor(nearestDisplay.bounds.x + (nearestDisplay.size.width - goalWidth) / 2) + const goalY = nearestDisplay.bounds.y + 200 // "top" is hardcoded now, should get from config or calculate accordingly? + + config.set('winPosition', [goalX, goalY]) + }) + // eslint-disable-next-line global-require require('@electron/remote/main').initialize() // eslint-disable-next-line global-require