fix: logseq#2419 clear data-active-keystroke when blur

pull/2427/head 0.2.4
Peng Xiao 2021-07-13 22:35:21 +08:00 committed by Tienson Qin
parent d2a798d7a5
commit c718eba6af
1 changed files with 12 additions and 5 deletions

View File

@ -293,6 +293,12 @@
(state/sync-system-theme!)
#(.removeEventListener schemaMedia "change" state/sync-system-theme!)))
(defn set-global-active-keystroke [val]
(.setAttribute js/document.body "data-active-keystroke" val))
(defn clear-global-active-keystroke []
(set-global-active-keystroke ""))
(defn setup-active-keystroke! []
(let [active-keystroke (atom #{})
handle-global-keystroke
@ -300,17 +306,18 @@
(let [handler (if down? conj disj)
keystroke e.key]
(swap! active-keystroke handler keystroke))
(.setAttribute
js/document.body
"data-active-keystroke"
(apply str (interpose "+" (vec @active-keystroke)))))
(set-global-active-keystroke (apply str (interpose "+" (vec @active-keystroke)))))
keydown-handler (partial handle-global-keystroke true)
keyup-handler (partial handle-global-keystroke false)]
(.addEventListener js/window "keydown" keydown-handler)
(.addEventListener js/window "keyup" keyup-handler)
(.addEventListener js/window "blur" clear-global-active-keystroke)
(.addEventListener js/window "visibilitychange" clear-global-active-keystroke)
(fn []
(.removeEventListener js/window "keydown" keydown-handler)
(.removeEventListener js/window "keyup" keyup-handler))))
(.removeEventListener js/window "keyup" keyup-handler)
(.removeEventListener js/window "blur" clear-global-active-keystroke)
(.removeEventListener js/window "visibilitychange" clear-global-active-keystroke))))
(defn on-scroll
[node on-load on-top-reached]