fix(electron): use different app menu for macos and others

This commit is contained in:
Andelf
2022-06-02 11:44:47 +08:00
committed by Tienson Qin
parent a6f9f79a9a
commit cb48bf70c8

View File

@@ -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! []