From ceda748144a6955ed462340b06946ea60303defb Mon Sep 17 00:00:00 2001 From: flbraun Date: Sat, 28 Oct 2023 20:42:04 +0200 Subject: [PATCH] hide the overlay when clicking outside of the palette area. resolves #1 --- src/main/main.js | 1 + src/main/preload.js | 1 + src/renderer/palette.js | 8 ++++++++ 3 files changed, 10 insertions(+) diff --git a/src/main/main.js b/src/main/main.js index e31be66..90de03c 100644 --- a/src/main/main.js +++ b/src/main/main.js @@ -61,6 +61,7 @@ app.whenReady().then(() => { ipcMain.handle('externalUrlOpen', (event, url) => shell.openExternal(url)) ipcMain.handle('panic', (event, msg) => panic(window, msg)) + ipcMain.handle('hideWindow', () => window.hide()) const shortcut = 'CommandOrControl+Shift+P' const ret = globalShortcut.register(shortcut, () => toggleWindowVisibility(window)) diff --git a/src/main/preload.js b/src/main/preload.js index 1e6a3d9..4536515 100644 --- a/src/main/preload.js +++ b/src/main/preload.js @@ -3,4 +3,5 @@ const { contextBridge, ipcRenderer } = require('electron') contextBridge.exposeInMainWorld('electronAPI', { externalUrlOpen: (url) => ipcRenderer.invoke('externalUrlOpen', url), panic: (msg) => ipcRenderer.invoke('panic', msg), + hideWindow: () => ipcRenderer.invoke('hideWindow'), }) diff --git a/src/renderer/palette.js b/src/renderer/palette.js index aec4d57..6cf3962 100644 --- a/src/renderer/palette.js +++ b/src/renderer/palette.js @@ -14,6 +14,14 @@ const ICONS = { GOTO: '../../assets/goto.png', } +// register click handlers that hide the window when clicking outside of the palette area +document.getElementsByTagName('body')[0].addEventListener('click', () => { + window.electronAPI.hideWindow() +}) +document.getElementById('palette').addEventListener('click', (event) => { + event.stopPropagation() +}) + const makePalette = (searchInput, resultlist) => { let selectedResult = null