瀏覽代碼

fix: search bar cannot copy

Weihua Lu 4 年之前
父節點
當前提交
57d0436a60
共有 2 個文件被更改,包括 15 次插入3 次删除
  1. 6 0
      src/main/frontend/modules/shortcut/config.cljs
  2. 9 3
      src/main/frontend/modules/shortcut/core.cljs

+ 6 - 0
src/main/frontend/modules/shortcut/config.cljs

@@ -256,6 +256,12 @@
      :binding "mod+c mod+r"
      :fn      #(repo-handler/re-index! nfs-handler/rebuild-index!)}}
 
+   :shortcut.handler/misc
+   ;; always overrides the copy due to "mod+c mod+s"
+   {:misc/copy
+    {:binding "mod+c"
+     :fn     (fn [] (js/document.execCommand "copy"))}}
+
    :shortcut.handler/global-non-editing-only
    ^{:before m/enable-when-not-editing-mode!}
    {:ui/toggle-document-mode

+ 9 - 3
src/main/frontend/modules/shortcut/core.cljs

@@ -19,9 +19,13 @@
    KeyCodes/UP KeyCodes/LEFT KeyCodes/DOWN KeyCodes/RIGHT])
 
 (defn install-shortcut!
-  [handler-id {:keys [set-global-keys? prevent-default? state]
+  [handler-id {:keys [set-global-keys?
+                      prevent-default?
+                      skip-installed?
+                      state]
                :or   {set-global-keys? true
-                      prevent-default? false}}]
+                      prevent-default? false
+                      skip-installed? false}}]
   (let [shortcut-map (dh/shortcut-map handler-id state)
         handler      (new KeyboardShortcutHandler js/window)]
      ;; set arrows enter, tab to global
@@ -55,12 +59,14 @@
 
       (events/listen handler EventType/SHORTCUT_TRIGGERED f)
 
-      (swap! *installed merge data)
+      (when-not skip-installed?
+        (swap! *installed merge data))
 
       install-id)))
 
 (defn install-shortcuts!
   []
+  (install-shortcut! :shortcut.handler/misc {:skip-installed? true})
   (->> [:shortcut.handler/editor-global
         :shortcut.handler/global-non-editing-only
         :shortcut.handler/global-prevent-default]