From 53cbb8a7e331c1c53e7d83220d79178c00e8bc2c Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Sat, 22 Jan 2022 14:16:46 +0100 Subject: [PATCH] avoid rechecking window status on every loop --- app/lib/window.ts | 3 +++ tabby-electron/src/services/hostWindow.service.ts | 13 ++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/lib/window.ts b/app/lib/window.ts index c5de4b4f..b3b8db41 100644 --- a/app/lib/window.ts +++ b/app/lib/window.ts @@ -303,6 +303,9 @@ export class Window { this.window.on('enter-full-screen', () => this.send('host:window-enter-full-screen')) this.window.on('leave-full-screen', () => this.send('host:window-leave-full-screen')) + this.window.on('maximize', () => this.send('host:window-maximized')) + this.window.on('unmaximize', () => this.send('host:window-unmaximized')) + this.window.on('close', event => { if (!this.closing) { event.preventDefault() diff --git a/tabby-electron/src/services/hostWindow.service.ts b/tabby-electron/src/services/hostWindow.service.ts index 07b3b753..c6372c10 100644 --- a/tabby-electron/src/services/hostWindow.service.ts +++ b/tabby-electron/src/services/hostWindow.service.ts @@ -15,6 +15,7 @@ export class ElectronHostWindow extends HostWindowService { get isFullscreen (): boolean { return this._isFullscreen } private _isFullscreen = false + private _isMaximized = false constructor ( zone: NgZone, @@ -47,6 +48,16 @@ export class ElectronHostWindow extends HostWindowService { electron.ipcRenderer.on('host:became-main-window', () => zone.run(() => { this.bootstrapData.isMainWindow = true })) + + electron.ipcRenderer.on('host:window-maximized', () => zone.run(() => { + this._isMaximized = true + })) + + electron.ipcRenderer.on('host:window-unmaximized', () => zone.run(() => { + this._isMaximized = false + })) + + this._isMaximized = this.getWindow().isMaximized() } getWindow (): BrowserWindow { @@ -74,7 +85,7 @@ export class ElectronHostWindow extends HostWindowService { } isMaximized (): boolean { - return this.getWindow().isMaximized() + return this._isMaximized } toggleMaximize (): void {