El error aparece solo si abro una nueva ventana cuando el inspector se abre una vez. No aparece para mainWindow.
// Detect maximize-unmaximize to change the maximize button's icon app.on('browser-window-focus', (event, win) => { console.log('Focus: ' + win.webContents.id); BrowserWindow.fromId(win.webContents.id).on('ready-to-show', () => { BrowserWindow.fromId(win.webContents.id).on('maximize', () => { console.log("maximize detected", win.webContents.id); BrowserWindow.fromId(win.webContents.id).send('window-events', 'maximize'); }) BrowserWindow.fromId(win.webContents.id).on('unmaximize', () => { console.log("unmaximize detected", win.webContents.id); BrowserWindow.fromId(win.webContents.id).send('window-events', 'unmaximize'); }) }) })
Esto sucede porque está utilizando la misma instancia de vista web de las ventanas de su navegador. Puede solucionar esto creando una vista web separada en cada ventana y luego usarla en su lugar. Por ejemplo, intente cambiarlo de la siguiente manera:
var myBrowser = require('electron').remote.getGlobal('Browser'); var myBrowser2 = require('electron').remote.getGlobal('Browser2'); myBrowser.webContents.on('dom-ready', function(){ myBrowser2.webContents.send('window-events', 'maximize') }); myBrowser2.webContents.on('dom-ready', function(){ myBrowser.webContents.send('window-events', 'unmaximize') });
Deberá asegurarse de que ambas ventanas tengan su propia identificación única para que no entren en conflicto entre sí. También tenga en cuenta que asumo que desea enviar estos eventos desde el propio proceso del renderizador. Si desea recibirlos en el lado del proceso principal, debería poder escuchar "eventos de ventana" en el objeto remoto devuelto por getGlobal.
Resolví el problema usando .getFocusedWindow() en lugar de .fromId. Gracias.