electron-multi-monitor
Version:
Create multi monitor applications using web development
33 lines (32 loc) • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const electron_1 = require("electron");
const ElectronMultiMonitor_1 = require("../browser/ElectronMultiMonitor");
//TODO Delete this file
console.warn("Loading preload/Main.js...");
const currentMonitor = electron_1.remote.getCurrentWindow();
electron_1.contextBridge.exposeInMainWorld("currentMonitor", currentMonitor);
console.log("currentMonitor: ", currentMonitor);
const { numberOfOthersToOpen } = currentMonitor;
if (typeof (numberOfOthersToOpen) !== "undefined") {
console.log("🔳 Main monitor");
const numberOfMonitors = numberOfOthersToOpen + 1;
const electronMultiMonitor = new ElectronMultiMonitor_1.ElectronMultiMonitor(window, numberOfMonitors);
electron_1.contextBridge.exposeInMainWorld("electronMultiMonitor", electronMultiMonitor);
for (let i = 0; i < numberOfOthersToOpen; i++) {
window.open("about:blank", `MM-other-${i}`);
}
}
else {
console.log("🔳 Other monitor");
if (!window.opener)
throw new Error("This should be an 'other monitor' but there's no window.opener defined! Can't connect the multiple monitors!");
console.warn("window.opener", window.opener);
const opener = window.opener;
const { electronMultiMonitor } = opener;
if (!electronMultiMonitor)
throw new Error("This should be an 'other monitor' but the window.opener has no 'electronMultiMonitor' object! Can't connect the multiple monitors!");
const mainWindow = electronMultiMonitor.registerOtherMonitor(window);
electron_1.contextBridge.exposeInMainWorld("mainWindow", mainWindow);
}
console.warn("Loaded preload/Main.js...");