Browse Source

Enhance multi monitor/offscreen support

Fixes #895
Fixes #920
Fixes #323
pull/1193/head
Ramiro Saenz 8 years ago
parent
commit
9dd5380f60
  1. 9
      electron/main.js
  2. 18
      electron/utils/positionOnScreen.js

9
electron/main.js

@ -162,6 +162,15 @@ function createWindow () {
if ( !config.get('start_minimized') && config.get('maximized') ) mainWindow.maximize();
// Check if the window its outside of the view (ex: multi monitor setup)
const { positionOnScreen } = require('./utils/positionOnScreen');
const inBounds = positionOnScreen([config.get('x'), config.get('y')]);
if ( inBounds ) {
mainWindow.setPosition(config.get('x'), config.get('y'));
} else {
mainWindow.center();
}
process.setMaxListeners(10000);
// Open the DevTools.

18
electron/utils/positionOnScreen.js

@ -0,0 +1,18 @@
const { screen } = require('electron');
const positionOnScreen = (position) => {
let inBounds = false;
if (position) {
screen.getAllDisplays().forEach((display) => {
if (position[0] >= display.workArea.x &&
position[0] <= display.workArea.x + display.workArea.width &&
position[1] >= display.workArea.y &&
position[1] <= display.workArea.y + display.workArea.height) {
inBounds = true;
}
});
}
return inBounds;
};
module.exports = {positionOnScreen};
Loading…
Cancel
Save