org-fold-core: Respect 'ignore-indirect optimization better

* lisp/org-fold-core.el (org-fold-core--property-symbol-get-create):
(org-fold-core-decouple-indirect-buffer-folds): Do not try to decouple
folding state in indirect buffers when 'ignore-indirect is requested
in `org-fold-core--optimise-for-huge-buffers'.
This commit is contained in:
Ihor Radchenko 2022-09-29 22:26:54 +08:00
parent 791ea50528
commit e9781f1c08
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B
1 changed files with 6 additions and 3 deletions

View File

@ -552,7 +552,8 @@ unless RETURN-ONLY is non-nil."
org-fold-core--property-symbol-cache))))
(prog1
local-prop
(unless return-only
(unless (or return-only
(memql 'ignore-indirect org-fold-core--optimise-for-huge-buffers))
(with-current-buffer buf
;; Update folding properties carried over from other
;; buffer (implying that current buffer is indirect
@ -623,9 +624,11 @@ unless RETURN-ONLY is non-nil."
(defun org-fold-core-decouple-indirect-buffer-folds ()
"Copy and decouple folding state in a newly created indirect buffer.
This function is mostly indented to be used in `clone-indirect-buffer-hook'."
This function is mostly intended to be used in
`clone-indirect-buffer-hook'."
(when (and (buffer-base-buffer)
(eq org-fold-core-style 'text-properties))
(eq org-fold-core-style 'text-properties)
(not (memql 'ignore-indirect org-fold-core--optimise-for-huge-buffers)))
(org-fold-core--property-symbol-get-create (car (org-fold-core-folding-spec-list)))))
;;; API