Browse Source

fix: indentation after an embeded node

fixes https://github.com/logseq/db-test/issues/361
Tienson Qin 4 months ago
parent
commit
a365154eec

+ 23 - 1
clj-e2e/test/logseq/e2e/outliner_basic_test.clj

@@ -4,8 +4,10 @@
    [logseq.e2e.block :as b]
    [logseq.e2e.fixtures :as fixtures]
    [logseq.e2e.keyboard :as k]
+   [logseq.e2e.page :as p]
    [logseq.e2e.util :as util]
-   [wally.main :as w]))
+   [wally.main :as w]
+   [wally.repl :as repl]))
 
 (use-fixtures :once fixtures/open-page)
 (use-fixtures :each
@@ -44,6 +46,23 @@
     (let [[x2 x3 x4 x5] (map (comp first util/bounding-xy #(w/find-one-by-text "span" %)) ["b2" "b3" "b4" "b5"])]
       (is (and (= x2 x4) (= x3 x5) (< x2 x3))))))
 
+(defn indent-outdent-embed-page []
+  (p/new-page "Page embed")
+  (b/new-blocks ["b1" "b2"])
+  (p/new-page "Page testing")
+  (b/new-blocks ["b3" ""])
+  (util/input-command "Node embed")
+  (util/press-seq "Page embed" {:delay 60})
+  (k/press "Enter" {:delay 60})
+  (util/exit-edit)
+  (b/new-blocks ["b4"])
+  (b/outdent)
+  (b/indent)
+  (util/exit-edit)
+  (let [[x2 x3 x4] (map (comp first util/bounding-xy #(w/find-one-by-text "span" %)) ["b2" "b3" "b4"])]
+    (is (= x2 x4))
+    (is (< x3 x2))))
+
 (defn move-up-down []
   (b/new-blocks ["b1" "b2" "b3" "b4"])
   (util/repeat-keyboard 2 "Shift+ArrowUp")
@@ -90,6 +109,9 @@
 (deftest indent-and-outdent-test
   (indent-and-outdent))
 
+(deftest indent-outdent-embed-page-test
+  (indent-outdent-embed-page))
+
 (deftest move-up-down-test
   (move-up-down))
 

+ 3 - 1
deps/outliner/src/logseq/outliner/core.cljs

@@ -628,7 +628,9 @@
                                    (get-last-child-or-self db target)
                                    [target false])))
 
-                             (and (= outliner-op :indent-outdent-blocks) (not indent?))
+                             (and (= outliner-op :indent-outdent-blocks)
+                                  (or (not indent?)
+                                      (and indent? sibling?)))
                              [block sibling?]
 
                              (contains? #{:insert-blocks :move-blocks} outliner-op)