diff --git a/main.js b/main.js index ae407f5f633b66f2f248fd6b40f3f9b06e4e6b50..f932514d2a30b67cccb0ef8d98ebbdff0adbfc1c 100644 --- a/main.js +++ b/main.js @@ -4,6 +4,10 @@ const electron = require("electron"); const APP = electron.app; const BrowserWindow = electron.BrowserWindow; +const { + setupAlwaysOnTopMain +} = require("jitsi-meet-electron-utils"); + const path = require("path"); const url = require("url"); @@ -31,7 +35,10 @@ const jitsiMeetWindowOptions = { height: 600, minWidth: 800, minHeight: 600, - titleBarStyle: 'hidden' + titleBarStyle: 'hidden', + webPreferences: { + nativeWindowOpen: true + } }; /** @@ -69,11 +76,15 @@ function createJitsiMeetWindow () { jitsiMeetWindow = new BrowserWindow(jitsiMeetWindowOptions); jitsiMeetWindow.loadURL(indexURL); - jitsiMeetWindow.webContents.on('new-window', function(event, url) { - event.preventDefault(); - electron.shell.openExternal(url); + jitsiMeetWindow.webContents.on('new-window', (event, url, frameName) => { + if (frameName !== 'AlwaysOnTop') { + event.preventDefault(); + electron.shell.openExternal(url); + } }); + setupAlwaysOnTopMain(jitsiMeetWindow); + jitsiMeetWindow.on("closed", () => { jitsiMeetWindow = null; }); diff --git a/package.json b/package.json index 992aea1783616825bfc573d378d31a0cf5e26db5..4ab5862af39b1eab2c467ac9e147a585a60a4328 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "jitsi-meet-electron-utils": "jitsi/jitsi-meet-electron-utils" }, "devDependencies": { - "electron": "1.4.13", + "electron": "1.7.5", "electron-packager": "*", "electron-rebuild": "^1.5.6", "eslint": ">=3", diff --git a/windows/jitsi-meet/render.js b/windows/jitsi-meet/render.js index 4ce648ffc62741e44430f7a12e07aa6c41c2a548..edc0e3b9cc69525474ee7635fe6100d470a97f02 100644 --- a/windows/jitsi-meet/render.js +++ b/windows/jitsi-meet/render.js @@ -1,7 +1,8 @@ /* global process, JitsiMeetExternalAPI */ const { RemoteControl, - setupScreenSharingForWindow + setupScreenSharingForWindow, + setupAlwaysOnTopRender } = require("jitsi-meet-electron-utils"); const { jitsiMeetDomain } = require("../../config.js"); @@ -32,4 +33,5 @@ loadScript(`https://${jitsiMeetDomain}/external_api.js`, () => { const iframe = api.getIFrame(); setupScreenSharingForWindow(iframe); new RemoteControl(iframe); + setupAlwaysOnTopRender(api); });