diff --git a/src/public/app/services/utils.ts b/src/public/app/services/utils.ts index 527caf55d..067f8bf50 100644 --- a/src/public/app/services/utils.ts +++ b/src/public/app/services/utils.ts @@ -8,6 +8,15 @@ function reloadFrontendApp(reason?: string) { window.location.reload(); } +function reloadTray() { + if (!isElectron()) { + return; + } + + const { ipcRenderer } = dynamicRequire("electron"); + ipcRenderer.send("reload-tray"); +} + function parseDate(str: string) { try { return new Date(Date.parse(str)); @@ -602,6 +611,7 @@ function isLaunchBarConfig(noteId: string) { export default { reloadFrontendApp, + reloadTray, parseDate, formatDateISO, formatDateTime, diff --git a/src/public/app/widgets/bookmark_buttons.js b/src/public/app/widgets/bookmark_buttons.js index 767522239..5494b7422 100644 --- a/src/public/app/widgets/bookmark_buttons.js +++ b/src/public/app/widgets/bookmark_buttons.js @@ -2,6 +2,7 @@ import FlexContainer from "./containers/flex_container.js"; import OpenNoteButtonWidget from "./buttons/open_note_button_widget.js"; import BookmarkFolderWidget from "./buttons/bookmark_folder.js"; import froca from "../services/froca.js"; +import utils from "../services/utils.js"; export default class BookmarkButtons extends FlexContainer { constructor(isHorizontalLayout) { @@ -35,6 +36,8 @@ export default class BookmarkButtons extends FlexContainer { buttonWidget.refreshIcon(); } + + utils.reloadTray(); } initialRenderCompleteEvent() { diff --git a/src/services/tray.ts b/src/services/tray.ts index a03186010..319ce55fb 100644 --- a/src/services/tray.ts +++ b/src/services/tray.ts @@ -9,7 +9,7 @@ import type BNote from "../becca/entities/bnote.js"; import becca from "../becca/becca.js"; import becca_service from "../becca/becca_service.js"; import type BRecentNote from "../becca/entities/brecent_note.js"; -import { nativeTheme } from "electron/main"; +import { ipcMain, nativeTheme } from "electron/main"; let tray: Tray; // `mainWindow.isVisible` doesn't work with `mainWindow.show` and `mainWindow.hide` - it returns `false` when the window @@ -60,6 +60,7 @@ function registerVisibilityListener() { mainWindow.on("minimize", updateTrayMenu); mainWindow.on("maximize", updateTrayMenu); nativeTheme.on("updated", updateTrayMenu); + ipcMain.on("reload-tray", updateTrayMenu); } function updateTrayMenu() {