Browse Source

fix(editor): try to fix input lag

Related to https://github.com/logseq/logseq/issues/572
Tienson Qin 5 years ago
parent
commit
b549f036ea
1 changed files with 8 additions and 18 deletions
  1. 8 18
      src/main/frontend/mixins.cljs

+ 8 - 18
src/main/frontend/mixins.cljs

@@ -195,26 +195,16 @@
   ([m enable-f target]
    (when (seq m)
      (let [target-fn (if (fn? target) target (fn [_] target))]
-       {:did-mount
-        (fn [state]
-          (if (enable-f state)
-            (let [keyboards (doall
-                             (map
-                              (fn [[key f]]
-                                [key
-                                 (keyboard/install-shortcut! key
-                                                             (fn [e] (f state e))
-                                                             false
-                                                             (target-fn state))])
-                              m))]
-              (assoc state ::keyboards-listener keyboards))
-            state))
-        :will-unmount
+       {:init
         (fn [state]
           (when (enable-f state)
-            (doseq [[_k f] (get state ::keyboards-listener)]
-              (f)))
-          state)}))))
+            (doseq [[key f] m]
+              (keyboard/install-shortcut! key
+                                          (fn [e] (f state e))
+                                          true
+                                          (target-fn state))
+              m)
+            state))}))))
 
 ;; also, from https://github.com/tonsky/rum/blob/75174b9ea0cf4b7a761d9293929bd40c95d35f74/doc/useful-mixins.md
 (defn perf-measure-mixin