Bläddra i källkod

fix: keep copy-paste buffer intact when deleting blocks

Related to #1507
Tienson Qin 4 år sedan
förälder
incheckning
ba5259feb9
2 ändrade filer med 8 tillägg och 8 borttagningar
  1. 6 6
      src/main/frontend/components/content.cljs
  2. 2 2
      src/main/frontend/handler/editor.cljs

+ 6 - 6
src/main/frontend/components/content.cljs

@@ -51,7 +51,7 @@
    [:div.py-1.rounded-md.bg-base-3.shadow-xs
     (ui/menu-link
      {:key "cut"
-      :on-click editor-handler/cut-selection-blocks}
+      :on-click #(editor-handler/cut-selection-blocks true)}
      "Cut")
     (ui/menu-link
      {:key "copy"
@@ -254,8 +254,8 @@
 
 
 (defn- cut-blocks-and-clear-selections!
-  [_]
-  (editor-handler/cut-selection-blocks)
+  [copy?]
+  (editor-handler/cut-selection-blocks copy?)
   (editor-handler/clear-selection! nil))
 
 (rum/defc hidden-selection < rum/reactive
@@ -264,11 +264,11 @@
                            (editor-handler/copy-selection-blocks)
                            (editor-handler/clear-selection! nil)))
   (mixins/keyboard-mixin (util/->system-modifier "ctrl+x")
-                         cut-blocks-and-clear-selections!)
+                         (fn [] (cut-blocks-and-clear-selections! true)))
   (mixins/keyboard-mixin "backspace"
-                         cut-blocks-and-clear-selections!)
+                         (fn [] (cut-blocks-and-clear-selections! false)))
   (mixins/keyboard-mixin "delete"
-                         cut-blocks-and-clear-selections!)
+                         (fn [] (cut-blocks-and-clear-selections! false)))
   []
   [:div#selection.hidden])
 

+ 2 - 2
src/main/frontend/handler/editor.cljs

@@ -1219,8 +1219,8 @@
         (common-handler/copy-to-clipboard-without-id-property! content)))))
 
 (defn cut-selection-blocks
-  []
-  (copy-selection-blocks)
+  [copy?]
+  (when copy? (copy-selection-blocks))
   (when-let [blocks (seq (get-selected-blocks-with-children))]
     (let [repo (dom/attr (first blocks) "repo")
           ids (distinct (map #(uuid (dom/attr % "blockid")) blocks))]