From 154a98a75436179678eabf4747bb5f6bdd2c2c19 Mon Sep 17 00:00:00 2001 From: Armin Date: Tue, 7 Jul 2026 03:02:02 +0200 Subject: [PATCH] fix resize (both keyboard and mouse should work) --- main.js | 31 +++++++++++++++++++++++++++++-- preload.js | 30 ++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 preload.js diff --git a/main.js b/main.js index f3cc3a0..734029d 100644 --- a/main.js +++ b/main.js @@ -1,11 +1,38 @@ -const { app, BrowserWindow, Menu } = require('electron'); +const { app, BrowserWindow, Menu, ipcMain } = require('electron'); + +let zoomLevel = 0; +const MIN_ZOOM = -5; +const MAX_ZOOM = 5; + function createWindow() { const win = new BrowserWindow({ width: 1200, height: 800, + webPreferences: { + preload: __dirname + '/preload.js', + }, }); win.loadURL('https://bsd.pm/noiz/'); + + ipcMain.on('zoom-in', () => { + if (zoomLevel < MAX_ZOOM) { + zoomLevel += 1; + win.webContents.setZoomLevel(zoomLevel); + } + }); + + ipcMain.on('zoom-out', () => { + if (zoomLevel > MIN_ZOOM) { + zoomLevel -= 1; + win.webContents.setZoomLevel(zoomLevel); + } + }); + + ipcMain.on('zoom-reset', () => { + zoomLevel = 0; + win.webContents.setZoomLevel(0); + }); } + Menu.setApplicationMenu(null); app.whenReady().then(createWindow); - diff --git a/preload.js b/preload.js new file mode 100644 index 0000000..859d5bf --- /dev/null +++ b/preload.js @@ -0,0 +1,30 @@ +const { ipcRenderer } = require('electron'); + +document.addEventListener('keydown', (e) => { + if (!e.ctrlKey) return; + switch (e.key) { + case '=': + case '+': + e.preventDefault(); + ipcRenderer.send('zoom-in'); + break; + case '-': + e.preventDefault(); + ipcRenderer.send('zoom-out'); + break; + case '0': + e.preventDefault(); + ipcRenderer.send('zoom-reset'); + break; + } +}); + +document.addEventListener('wheel', (e) => { + if (!e.ctrlKey) return; + e.preventDefault(); + if (e.deltaY < 0) { + ipcRenderer.send('zoom-in'); + } else if (e.deltaY > 0) { + ipcRenderer.send('zoom-out'); + } +}, { passive: false });