diff --git a/frappe/public/js/frappe/desk.js b/frappe/public/js/frappe/desk.js index c0fcfeee92..4f80218c14 100644 --- a/frappe/public/js/frappe/desk.js +++ b/frappe/public/js/frappe/desk.js @@ -54,19 +54,18 @@ frappe.Application = class Application { this.setup_copy_doc_listener(); frappe.ui.keys.setup(); - - let is_dialog_open = false; + frappe.ui.keys.add_shortcut({ shortcut: 'shift+ctrl+g', description: __('Switch Theme'), action: () => { - frappe.theme_switcher = new frappe.ui.ThemeSwitcher(); - if (!is_dialog_open) { - frappe.theme_switcher.show(); - is_dialog_open = true; - } else { + if (cur_dialog) { frappe.theme_switcher.hide(); - is_dialog_open = false; + } else { + if (!frappe.theme_switcher) { + frappe.theme_switcher = new frappe.ui.ThemeSwitcher(); + } + frappe.theme_switcher.show(); } } }); diff --git a/frappe/public/js/frappe/ui/dialog.js b/frappe/public/js/frappe/ui/dialog.js index 2c0ff0dcf4..1618db9939 100644 --- a/frappe/public/js/frappe/ui/dialog.js +++ b/frappe/public/js/frappe/ui/dialog.js @@ -216,7 +216,6 @@ frappe.ui.Dialog = class Dialog extends frappe.ui.FieldGroup { hide() { this.$wrapper.modal("hide"); this.is_visible = false; - frappe.ui.hide_open_dialog(); } get_close_btn() { diff --git a/frappe/public/js/frappe/ui/theme_switcher.js b/frappe/public/js/frappe/ui/theme_switcher.js index 1725577079..c2e1094675 100644 --- a/frappe/public/js/frappe/ui/theme_switcher.js +++ b/frappe/public/js/frappe/ui/theme_switcher.js @@ -138,7 +138,7 @@ frappe.ui.ThemeSwitcher = class ThemeSwitcher { } hide() { - this.dialog.hide(); + frappe.ui.hide_open_dialog(); } };