From b1b393f02f782a2bdc236f7ae3ac81a1a87243cc Mon Sep 17 00:00:00 2001 From: Local Dev Date: Tue, 27 Oct 2026 21:57:32 +0200 Subject: [PATCH] Theseus 0.3.124 (cont'd): Ariadne nested under System; Theseus logo toggles the Settings tab MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ariadne's Thread drops out of the Settings top-level nav. It is reached from the System section's chevron now; its page gets a System › crumb back. Aegis stays top-level (user-facing wallet, used often enough to earn its own slot). The Theseus logo in the toolbar was open-only — the second click did nothing. It now toggles: if Settings is already the active tab, the click closes it (and switches to whatever tab Theseus falls back to). Deep links that open a specific section (openSettings("ai-engines") from a picker, say) still always open — toggling is the intent of the logo click specifically, not of every open-settings call. --- main.js | 15 ++++++++++++++- settings.html | 9 ++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/main.js b/main.js index 0143334a..c643493b 100644 --- a/main.js +++ b/main.js @@ -8337,7 +8337,20 @@ function openSettingsTab(section) { } createTab(null, { settings: true, settingsSection: slug }); } -ipcMain.handle("open-settings", (_e, section) => openSettingsTab(section)); +// The toolbar's Theseus logo toggles the Settings tab: if Settings is already +// the active tab, clicking the logo closes it (switching to the previously +// active tab, or the first remaining one). Called without a section, so a +// deep-link call like openSettingsTab("ai-engines") always opens rather than +// toggling — the toggle is intent-of-the-logo-click, not of a nav route. +function toggleSettingsTab() { + const ex = tabs.find((t) => t.settings); + if (ex && isActiveId(ex.id)) { closeTab(ex.id); return; } + openSettingsTab(); +} +ipcMain.handle("open-settings", (_e, section) => { + if (section) openSettingsTab(section); + else toggleSettingsTab(); +}); // Settings › Performance drives Shield and Cookie Pop-ups through their // add-ons' own message handlers; only the Settings tab may call this. const isSettingsSender = (e) => tabs.some((t) => t.settings && t.view?.webContents === e.sender); diff --git a/settings.html b/settings.html index 922b87fd..2ab46683 100644 --- a/settings.html +++ b/settings.html @@ -320,7 +320,6 @@ Performance Privacy System - Ariadne's Thread Aegis Extensions Sidebar @@ -632,11 +631,11 @@ - +