diff --git a/src/public/app/services/utils.ts b/src/public/app/services/utils.ts index aef3985c5..a4b0aa750 100644 --- a/src/public/app/services/utils.ts +++ b/src/public/app/services/utils.ts @@ -10,6 +10,17 @@ function reloadFrontendApp(reason?: string) { window.location.reload(); } +function restartDesktopApp() { + if (!isElectron()) { + reloadFrontendApp(); + return; + } + + const app = dynamicRequire("@electron/remote").app; + app.relaunch(); + app.exit(); +} + /** * Triggers the system tray to update its menu items, i.e. after a change in dynamic content such as bookmarks or recent notes. * @@ -739,6 +750,7 @@ function isLaunchBarConfig(noteId: string) { export default { reloadFrontendApp, + restartDesktopApp, reloadTray, parseDate, getMonthsInDateRange, diff --git a/src/public/app/widgets/type_widgets/options/appearance/electron_integration.ts b/src/public/app/widgets/type_widgets/options/appearance/electron_integration.ts index ea0552cfe..86e614890 100644 --- a/src/public/app/widgets/type_widgets/options/appearance/electron_integration.ts +++ b/src/public/app/widgets/type_widgets/options/appearance/electron_integration.ts @@ -61,11 +61,7 @@ export default class ElectronIntegrationOptions extends OptionsWidget { this.$backgroundEffects.on("change", () => this.updateCheckboxOption("backgroundEffects", this.$backgroundEffects)); const restartAppButton = this.$widget.find(".restart-app-button"); - restartAppButton.on("click", () => { - const app = utils.dynamicRequire("@electron/remote").app; - app.relaunch(); - app.exit(); - }); + restartAppButton.on("click", utils.restartDesktopApp); } isEnabled() { diff --git a/src/public/app/widgets/type_widgets/options/i18n/i18n.ts b/src/public/app/widgets/type_widgets/options/i18n/i18n.ts index 57cabc00c..d9a037864 100644 --- a/src/public/app/widgets/type_widgets/options/i18n/i18n.ts +++ b/src/public/app/widgets/type_widgets/options/i18n/i18n.ts @@ -59,6 +59,7 @@ export default class LocalizationOptions extends OptionsWidget { this.$formattingLocaleSelect.on("change", async () => { const newLocale = this.$formattingLocaleSelect.val(); await server.put(`options/formattingLocale/${newLocale}`); + utils.restartDesktopApp(); }); this.$widget.find(`input[name="first-day-of-week"]`).on("change", () => {