From 94cfb987708e18189c1c8a9b4cee35d1266ca683 Mon Sep 17 00:00:00 2001 From: Local Dev Date: Tue, 27 Oct 2026 21:55:45 +0200 Subject: [PATCH] Theseus 0.3.124 (cont'd): sidebar auto-close on click now fires in Settings and add-on tabs too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The overlay sidebar closes when the page is clicked — but only for web tabs, because only home-preload reported the pointerdown. Settings and full-tab add-on pages use their own preloads, so clicking inside them left the overlay panel sitting on top. Added the same pointerdown reporter to settings-preload and addon-tab-preload. Push-mode behaviour is unchanged (main gates on sidebarPanelMode). --- addon-tab-preload.js | 4 ++++ settings-preload.js | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/addon-tab-preload.js b/addon-tab-preload.js index b3d45e5a..8b6b14aa 100644 --- a/addon-tab-preload.js +++ b/addon-tab-preload.js @@ -5,6 +5,10 @@ // identity from the sender's file:// URL, so a page hosted anywhere else // gets nothing back from these handlers. const { contextBridge, ipcRenderer } = require("electron"); +// Clicks in an add-on tab close an overlay sidebar panel the same way clicks +// in a web tab or Settings do (see home-preload / settings-preload). Push +// mode is unaffected — main gates on sidebarPanelMode. +window.addEventListener("pointerdown", () => { ipcRenderer.send("tab-pointerdown"); }, true); contextBridge.exposeInMainWorld("silentmode", { storage: { get: (key, fallback = null) => ipcRenderer.invoke("addon-storage-get", key, fallback), diff --git a/settings-preload.js b/settings-preload.js index 4aaead47..f575f1cd 100644 --- a/settings-preload.js +++ b/settings-preload.js @@ -1,4 +1,8 @@ const { contextBridge, ipcRenderer } = require("electron"); +// A click inside the Settings tab closes an open sidebar panel (overlay mode) +// — same signal home-preload sends in a web tab. Without this, clicking the +// Settings icon with an overlay panel open did nothing to the panel. +window.addEventListener("pointerdown", () => { ipcRenderer.send("tab-pointerdown"); }, true); contextBridge.exposeInMainWorld("cfg", { get: () => ipcRenderer.invoke("settings-get"), set: (key, value) => ipcRenderer.invoke("settings-set", key, value),