You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Outdenting a selection that spans 2 levels moves blocks deeper #1319
On a page with blocks a (children a1; a2 with child a2x), b, c, d, click a2x, then Shift+click b. The selection holds a2x and b.
Press Shift+Tab.
Expected
a2x moves up one level, to after a2 under a. b is already at the top level, so b, c and d stay where they are. Shift+Tab never moves a block deeper.
Actual
The page reads a (a1, a2, a2x, b (c, d)): b moves one level deeper, into a after a2x, and c and d, which were not selected, move 2 levels deeper, under b. With the setting "Logical outdenting" on, b still moves into a; c and d stay.
Cause
indent-outdent-blocks in deps/outliner/src/logseq/outliner/core.cljs outdents the selected blocks with take-while, which stops only at a block whose parent is the target parent. b sits above that level, so b is taken too and moved after a2. Default outdenting then moves the right siblings of the last moved block (b's old siblings c and d) under it.
Found with a model-based property test of outliner operations built as the UI builds them, replayed on upstream master 16c4ed1a0.
Activity
yuxi-liu-wired commentedon Oct 6, 2026
Fix: logseq/logseq#13608.