From f4f268a7ef5f982fd560f0f4d15fc4be2e57f806 Mon Sep 17 00:00:00 2001 From: Diego Parra Date: Fri, 23 Feb 2024 01:20:57 +0100 Subject: [PATCH] Add left click hide/show feature This commit adds the option to click on the tray to hide or show the window, it is optional and is disabled by default. --- src/main/mainWindow.ts | 9 ++++++++- src/renderer/components/settings/Settings.tsx | 6 ++++++ src/shared/settings.d.ts | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/mainWindow.ts b/src/main/mainWindow.ts index 62a2559..0ba18d9 100644 --- a/src/main/mainWindow.ts +++ b/src/main/mainWindow.ts @@ -73,6 +73,13 @@ const [addSettingsListener, removeSettingsListeners] = makeSettingsListenerHelpe const [addVencordSettingsListener, removeVencordSettingsListeners] = makeSettingsListenerHelpers(VencordSettings); function initTray(win: BrowserWindow) { + const trayClickHandler = Settings.store.clickTrayToShowHide + ? () => { + win.isVisible() ? win.hide() : win.show(); + } + : () => { + win.show(); + }; const trayMenu = Menu.buildFromTemplate([ { label: "Open", @@ -120,7 +127,7 @@ function initTray(win: BrowserWindow) { tray = new Tray(ICON_PATH); tray.setToolTip("Vesktop"); tray.setContextMenu(trayMenu); - tray.on("click", () => win.show()); + tray.on("click", trayClickHandler); } async function clearData(win: BrowserWindow) { diff --git a/src/renderer/components/settings/Settings.tsx b/src/renderer/components/settings/Settings.tsx index cc6b3c2..b20347c 100644 --- a/src/renderer/components/settings/Settings.tsx +++ b/src/renderer/components/settings/Settings.tsx @@ -83,6 +83,12 @@ const SettingsOptions: Record> invisible: () => isMac, disabled: () => Settings.store.tray === false }, + { + key: "clickTrayToShowHide", + title: "Hide/Show on tray left click", + description: "Left clicking on tray will hide or show the vesktop window. Requires a full restart.", + defaultValue: false + }, { key: "disableMinSize", title: "Disable minimum window size", diff --git a/src/shared/settings.d.ts b/src/shared/settings.d.ts index d796e4b..7f6e74a 100644 --- a/src/shared/settings.d.ts +++ b/src/shared/settings.d.ts @@ -20,7 +20,7 @@ export interface Settings { arRPC?: boolean; appBadge?: boolean; disableMinSize?: boolean; - + clickTrayToShowHide?: boolean; /** @deprecated use customTitleBar */ discordWindowsTitleBar?: boolean; customTitleBar?: boolean;