fix: debounce shortcut installation

pull/7096/head
Tienson Qin 2022-10-24 15:49:16 +08:00
parent 425cfa298e
commit a43d737042
4 changed files with 7 additions and 8 deletions

View File

@ -14,8 +14,7 @@
[logseq.api]
[frontend.fs.sync :as sync]
[frontend.config :as config]
[frontend.util :as util]
[frontend.modules.shortcut.core :as shortcut]))
[frontend.util :as util]))
(defn set-router!
[]
@ -48,7 +47,6 @@
(when-let [node (.getElementById js/document "root")]
(set-router!)
(rum/mount (page/current-page) node)
(shortcut/refresh!)
(display-welcome-message)
(persist-var/load-vars)
(when (and config/dev? (util/electron?))

View File

@ -97,7 +97,6 @@
(p/finally
(fn []
;; install after config is restored
(shortcut/unlisten-all)
(shortcut/refresh!)
(cond

View File

@ -134,7 +134,6 @@
(state/set-current-repo! graph)
;; load config
(repo-config-handler/restore-repo-config! graph)
(st/refresh!)
(when-not (= :draw (state/get-current-route))
(route-handler/redirect-to-home!))
(when-let [dir-name (config/get-repo-dir graph)]
@ -557,7 +556,6 @@
(defn- refresh-cb []
(page-handler/create-today-journal!)
(st/refresh!)
(file-sync-restart!))
(defmethod handle :graph/ask-for-re-fresh [_]

View File

@ -8,7 +8,8 @@
[frontend.util :as util]
[goog.events :as events]
[goog.ui.KeyboardShortcutHandler.EventType :as EventType]
[lambdaisland.glogi :as log])
[lambdaisland.glogi :as log]
[goog.functions :refer [debounce]])
(:import [goog.events KeyCodes KeyHandler KeyNames]
[goog.ui KeyboardShortcutHandler]))
@ -175,18 +176,21 @@
(listen-all)
state)})
(defn refresh!
(defn refresh-internal!
"Always use this function to refresh shortcuts"
[]
(when-not (:ui/shortcut-handler-refreshing? @state/state)
(state/set-state! :ui/shortcut-handler-refreshing? true)
(log/info :shortcut/refresh @*installed)
(doseq [id (keys @*installed)]
(uninstall-shortcut! id))
(install-shortcuts!)
(state/pub-event! [:shortcut-handler-refreshed])
(state/set-state! :ui/shortcut-handler-refreshing? false)))
(def refresh! (debounce refresh-internal! 1000))
(defn- name-with-meta [e]
(let [ctrl (.-ctrlKey e)
alt (.-altKey e)