Browse Source

Preserve list visibility when inserting a new item

* lisp/org.el (org-insert-heading): Do not reveal gratuitously too much
  context before inserting an item.
* testing/lisp/test-org.el (test-org/insert-heading): Add test.

Reported-by: Steinar Bang <sb@dod.no>
<http://permalink.gmane.org/gmane.emacs.orgmode/107665>
Nicolas Goaziou 8 years ago
parent
commit
819cdb3a09
2 changed files with 12 additions and 1 deletions
  1. 0 1
      lisp/org.el
  2. 12 0
      testing/lisp/test-org.el

+ 0 - 1
lisp/org.el

@@ -7753,7 +7753,6 @@ command.
 When optional argument TOP-LEVEL is non-nil, insert a level 1
 heading, unconditionally."
   (interactive "P")
-  (if (org-called-interactively-p 'any) (org-reveal))
   (let ((itemp (and (not top-level) (org-in-item-p)))
 	(may-split (org-get-alist-option org-M-RET-may-split-line 'headline))
 	(respect-content (or org-insert-heading-respect-content

+ 12 - 0
testing/lisp/test-org.el

@@ -1100,6 +1100,18 @@
 	    (goto-char (point-max))
 	    (let ((org-insert-heading-respect-content nil)) (org-insert-heading))
 	    (buffer-string))))
+  ;; Preserve list visibility when inserting an item.
+  (should
+   (equal
+    '(outline outline)
+    (org-test-with-temp-text "- A\n  - B\n- C\n  - D"
+      (let ((org-cycle-include-plain-lists t))
+	(org-cycle)
+	(forward-line 2)
+	(org-cycle)
+	(let ((org-insert-heading-respect-content nil)) (org-insert-heading))
+	(list (get-char-property (line-beginning-position 0) 'invisible)
+	      (get-char-property (line-end-position 2) 'invisible))))))
   ;; When called with two universal arguments, insert a new headline
   ;; at the end of the grandparent subtree.
   (should