From ea6296a4d93cf7875083b6a5566c544ba014d85a Mon Sep 17 00:00:00 2001 From: Ihor Radchenko Date: Sat, 6 Apr 2024 15:21:10 +0300 Subject: [PATCH] Consistently label fold types when `org-fold-core-style' is 'overlays * lisp/org-clock.el (org-clock-find-position): * lisp/org-compat.el (org-flag-drawer): * lisp/org-src.el (org-edit-src-exit): * lisp/org.el (org-log-beginning): Do not force 'outline folds when `org-fold-core-style' is 'overlays. The erroneous logic dates back to the time when all the folding was done via 'outline folds to save up on the number of overlays in buffer. This is not longer the case - newer Emacs no longer struggle with number of overlays and we fall back to using text properties in older Emacs. Reported-by: Bruno Cardoso Link: https://orgmode.org/list/87sezzmd1m.fsf@gmail.com --- lisp/org-clock.el | 6 +----- lisp/org-compat.el | 4 ++-- lisp/org-macs.el | 1 - lisp/org-src.el | 6 +----- lisp/org.el | 2 +- 5 files changed, 5 insertions(+), 14 deletions(-) diff --git a/lisp/org-clock.el b/lisp/org-clock.el index c34c385fd..63c496778 100644 --- a/lisp/org-clock.el +++ b/lisp/org-clock.el @@ -1691,11 +1691,7 @@ line and position cursor in that line." ;; if point was right where the clock is inserted. (insert-before-markers-and-inherit ":" drawer ":\n:END:\n") (org-indent-region beg (point)) - (if (eq org-fold-core-style 'text-properties) - (org-fold-region - (line-end-position -1) (1- (point)) t 'drawer) - (org-fold-region - (line-end-position -1) (1- (point)) t 'outline)) + (org-fold-region (line-end-position -1) (1- (point)) t 'drawer) (forward-line -1))))) ;; When a clock drawer needs to be created because of the ;; number of clock items or simply if it is missing, collect diff --git a/lisp/org-compat.el b/lisp/org-compat.el index a16d732ad..9d1e2eb47 100644 --- a/lisp/org-compat.el +++ b/lisp/org-compat.el @@ -1009,7 +1009,7 @@ When optional argument ELEMENT is a parsed drawer, as returned by When buffer positions BEG and END are provided, hide or show that region as a drawer without further ado." (declare (obsolete "use `org-hide-drawer-toggle' instead." "9.4")) - (if (and beg end) (org-fold-region beg end flag (if (eq org-fold-core-style 'text-properties) 'drawer 'outline)) + (if (and beg end) (org-fold-region beg end flag 'drawer) (let ((drawer (or element (and (save-excursion @@ -1023,7 +1023,7 @@ region as a drawer without further ado." (save-excursion (goto-char (org-element-end drawer)) (skip-chars-backward " \t\n") (line-end-position)) - flag (if (eq org-fold-core-style 'text-properties) 'drawer 'outline)) + flag 'drawer) ;; When the drawer is hidden away, make sure point lies in ;; a visible part of the buffer. (when (invisible-p (max (1- (point)) (point-min))) diff --git a/lisp/org-macs.el b/lisp/org-macs.el index 595ff8171..fe0e84f6b 100644 --- a/lisp/org-macs.el +++ b/lisp/org-macs.el @@ -119,7 +119,6 @@ Version mismatch is commonly encountered in the following situations: (defvar org-ts-regexp0) (defvar ffap-url-regexp) -(defvar org-fold-core-style) ;;; Macros diff --git a/lisp/org-src.el b/lisp/org-src.el index df1aff739..dde8f8449 100644 --- a/lisp/org-src.el +++ b/lisp/org-src.el @@ -1479,11 +1479,7 @@ EVENT is passed to `mouse-set-point'." (goto-char beg) (cond ;; Block is hidden; move at start of block. - ((if (eq org-fold-core-style 'text-properties) - (org-fold-folded-p nil 'block) - (cl-some (lambda (o) (eq (overlay-get o 'invisible) 'org-hide-block)) - (overlays-at (point)))) - (forward-line -1)) + ((org-fold-folded-p nil 'block) (forward-line -1)) (write-back (org-src--goto-coordinates coordinates beg end)))) ;; Clean up left-over markers and restore window configuration. (set-marker beg nil) diff --git a/lisp/org.el b/lisp/org.el index 57e9efa2a..b0748738f 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -10715,7 +10715,7 @@ narrowing." (let ((beg (point))) (insert-and-inherit ":" drawer ":\n:END:\n") (org-indent-region beg (point)) - (org-fold-region (line-end-position -1) (1- (point)) t (if (eq org-fold-core-style 'text-properties) 'drawer 'outline))))) + (org-fold-region (line-end-position -1) (1- (point)) t 'drawer)))) (end-of-line -1)))) (t (org-end-of-meta-data org-log-state-notes-insert-after-drawers)