emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/consult fae9b50d88 3/3: Improve consult--invisible-open


From: ELPA Syncer
Subject: [elpa] externals/consult fae9b50d88 3/3: Improve consult--invisible-open-temporarily
Date: Mon, 16 Jan 2023 08:57:33 -0500 (EST)

branch: externals/consult
commit fae9b50d88e991452d5a32a41c2b8452aa1a914d
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    Improve consult--invisible-open-temporarily
---
 consult.el | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/consult.el b/consult.el
index 3949ccbdde..d533045f8b 100644
--- a/consult.el
+++ b/consult.el
@@ -1368,17 +1368,19 @@ See `isearch-open-necessary-overlays' and 
`isearch-open-overlay-temporary'."
                 (delq nil (org-fold-core-get-regions
                            :with-markers t :from (point-min) :to (point-max))))
           (when consult--org-fold-regions
-            (let ((hook (make-symbol 
"consult--invisible-open-temporarily-cleanup"))
-                  (buffer (current-buffer)))
-              (fset hook (lambda ()
-                           (remove-hook 'minibuffer-exit-hook hook)
-                           (when (buffer-live-p buffer)
-                             (with-current-buffer buffer
-                               (pcase-dolist (`(,beg ,end ,_) 
consult--org-fold-regions)
-                                 (when (markerp beg) (set-marker beg nil))
-                                 (when (markerp end) (set-marker end nil)))
-                               (kill-local-variable 
'consult--org-fold-regions)))))
-              (add-hook 'minibuffer-exit-hook hook))))
+            (let ((hook (make-symbol 
"consult--invisible-open-temporarily-cleanup")))
+              (fset hook (apply-partially #'run-at-time 0 nil
+                                          (lambda (buffer)
+                                            (when (buffer-live-p buffer)
+                                              (with-current-buffer buffer
+                                                (pcase-dolist (`(,beg ,end ,_) 
consult--org-fold-regions)
+                                                  (when (markerp beg) 
(set-marker beg nil))
+                                                  (when (markerp end) 
(set-marker end nil)))
+                                                (kill-local-variable 
'consult--org-fold-regions))))
+                                          (current-buffer)))
+              (when-let (win (active-minibuffer-window))
+                (with-current-buffer (window-buffer win)
+                  (add-hook 'minibuffer-exit-hook hook nil 'local))))))
         (org-fold-show-set-visibility 'canonical)
         (list (lambda ()
                 (pcase-dolist (`(,beg ,end ,spec) consult--org-fold-regions)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]