From 55a79cd69f11da0fe33aaea2ac469dbcd27efee9 Mon Sep 17 00:00:00 2001 From: Johannes Millan Date: Fri, 23 Nov 2018 17:02:02 +0100 Subject: [PATCH] feat: add mousewheel zoom for electron --- src/app/app.component.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 771e99f4c8..e620aa7c27 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -66,6 +66,7 @@ export class AppComponent implements OnInit { if (IS_ELECTRON) { this._electronService.ipcRenderer.send(IPC_APP_READY); this._initElectronErrorHandler(); + this._initMousewheelZoomForElectron(); this._electronService.ipcRenderer.on(IPC_TRANSFER_SETTINGS_REQUESTED, () => { this._electronService.ipcRenderer.send(IPC_TRANSFER_SETTINGS_TO_ELECTRON, this._configService.cfg); @@ -152,4 +153,19 @@ export class AppComponent implements OnInit { console.error(data); }); } + + private _initMousewheelZoomForElectron() { + const ZOOM_DELTA = 0.05; + const webFrame = this._electronService.webFrame; + document.addEventListener('mousewheel', (event: MouseWheelEvent) => { + if (event && event.ctrlKey) { + const zoomFactor = webFrame.getZoomFactor(); + if (event.deltaY > 0) { + webFrame.setZoomFactor(zoomFactor + ZOOM_DELTA); + } else if (event.deltaY < 0) { + webFrame.setZoomFactor(zoomFactor - ZOOM_DELTA); + } + } + }, false); + } }