From 8c6941b8e92a9cd76ebc81c6331928bbf3dbd416 Mon Sep 17 00:00:00 2001 From: Diego Parra <101421807+0bCdian@users.noreply.github.com> Date: Tue, 9 Apr 2024 04:23:34 +0200 Subject: [PATCH] Tray: Add left click hide/show feature (#404) Co-authored-by: V --- src/main/mainWindow.ts | 6 +++++- src/renderer/components/settings/Settings.tsx | 6 ++++++ src/shared/settings.d.ts | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/mainWindow.ts b/src/main/mainWindow.ts index 1479b8a..7e0afde 100644 --- a/src/main/mainWindow.ts +++ b/src/main/mainWindow.ts @@ -73,6 +73,10 @@ const [addSettingsListener, removeSettingsListeners] = makeSettingsListenerHelpe const [addVencordSettingsListener, removeVencordSettingsListeners] = makeSettingsListenerHelpers(VencordSettings); function initTray(win: BrowserWindow) { + const onTrayClick = () => { + if (Settings.store.clickTrayToShowHide && win.isVisible()) win.hide(); + else win.show(); + }; const trayMenu = Menu.buildFromTemplate([ { label: "Open", @@ -120,7 +124,7 @@ function initTray(win: BrowserWindow) { tray = new Tray(ICON_PATH); tray.setToolTip("Vesktop"); tray.setContextMenu(trayMenu); - tray.on("click", () => win.show()); + tray.on("click", onTrayClick); } async function clearData(win: BrowserWindow) { diff --git a/src/renderer/components/settings/Settings.tsx b/src/renderer/components/settings/Settings.tsx index cc6b3c2..d6de13c 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 click", + description: "Left clicking tray icon will toggle the vesktop window visibility.", + 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;