From cb48bf70c8a06d0fd0b0a69c58cc18bfe5ceab0d Mon Sep 17 00:00:00 2001 From: Andelf Date: Thu, 2 Jun 2022 11:44:47 +0800 Subject: [PATCH] fix(electron): use different app menu for macos and others --- src/electron/electron/core.cljs | 60 +++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 22 deletions(-) diff --git a/src/electron/electron/core.cljs b/src/electron/electron/core.cljs index f272e4c28d..b2a78d8393 100644 --- a/src/electron/electron/core.cljs +++ b/src/electron/electron/core.cljs @@ -185,28 +185,44 @@ (.showMessageBox dialog (clj->js {:title "Logseq" :icon (path/join js/__dirname "icons/logseq.png") :message (str "Version " updater/electron-version)}))) - template (clj->js [{:role "fileMenu" - :submenu [{:label "New Window" - :click (fn [] - (handler/open-new-window!)) - :accelerator "CommandOrControl+N" - :acceleratorWorksWhenHidden false} - {:type "separator"} - {:role "close" - :label "Close Window"} - {:label "Quit Logseq" - :role "quit"}]} - {:role "editMenu"} - {:role "viewMenu"} - {:role "windowMenu"} - {:role "help" - :submenu [{:label "Official Documentation" - :click (fn [] - (.openExternal shell "https://docs.logseq.com/"))} - {:role "about" - :label "About Logseq" - :click about-fn}]}]) - menu (.buildFromTemplate Menu template)] + template (if mac? + [{:label (.-name app) + :submenu [{:role "about"} + {:type "separator"} + {:role "services"} + {:type "separator"} + {:role "hide"} + {:role "hideOthers"} + {:role "unhide"} + {:type "separator"} + {:role "quit"}]}] + []) + template (conj template + {:role "fileMenu" + :submenu [{:label "New Window" + :click (fn [] + (handler/open-new-window!)) + :accelerator "CommandOrControl+N" + :acceleratorWorksWhenHidden false} + (if mac? + {:role "close"} + {:role "quit"})]} + {:role "editMenu"} + {:role "viewMenu"} + {:role "windowMenu"}) + ;; Windows has no about role + template (conj template + (if mac? + {:role "help" + :submenu [{:label "Official Documentation" + :click #(.openExternal shell "https://docs.logseq.com/")}]} + {:role "help" + :submenu [{:label "Official Documentation" + :click #(.openExternal shell "https://docs.logseq.com/")} + {:role "about" + :label "About Logseq" + :click about-fn}]})) + menu (.buildFromTemplate Menu (clj->js template))] (.setApplicationMenu Menu menu))) (defn- setup-deeplink! []