From: Lars Ingebrigtsen Date: Fri, 29 Jul 2022 11:20:06 +0000 (+0200) Subject: Fix up the outline minor mode button logic X-Git-Tag: emacs-29.0.90~1447^2~668 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0728764faeb30c7d03106f4e075a839905f2662e;p=emacs.git Fix up the outline minor mode button logic * lisp/outline.el (outline-minor-mode-highlight-buffer): Factor out... (bug#56820). (outline--use-buttons-p): ... to here. (outline-hide-subtree, outline--fix-up-all-buttons) (outline-show-subtree): Use it. --- diff --git a/lisp/outline.el b/lisp/outline.el index dd5df4c8966..b7935551dbb 100644 --- a/lisp/outline.el +++ b/lisp/outline.el @@ -434,13 +434,17 @@ outline font-lock faces to those of major mode." (goto-char (match-beginning 0)) (not (get-text-property (point) 'face)))) (overlay-put overlay 'face (outline-font-lock-face))) - (when (and outline-minor-mode-use-buttons - (or (eq outline-minor-mode-use-buttons t) - (buffer-match-p outline-minor-mode-use-buttons - (current-buffer)))) + (when (outline--use-buttons-p) (outline--insert-open-button))) (goto-char (match-end 0)))))) +(defun outline--use-buttons-p () + (and outline-minor-mode + outline-minor-mode-use-buttons + (or (eq outline-minor-mode-use-buttons t) + (buffer-match-p outline-minor-mode-use-buttons + (current-buffer))))) + ;;;###autoload (define-minor-mode outline-minor-mode "Toggle Outline minor mode. @@ -982,7 +986,7 @@ If non-nil, EVENT should be a mouse event." (interactive (list last-nonmenu-event)) (when (mouse-event-p event) (mouse-set-point event)) - (when (and outline-minor-mode-use-buttons outline-minor-mode) + (when (outline--use-buttons-p) (outline--insert-close-button)) (outline-flag-subtree t)) @@ -1042,7 +1046,7 @@ If non-nil, EVENT should be a mouse event." (save-excursion (goto-char from) (setq from (line-beginning-position)))) - (when outline-minor-mode-use-buttons + (when (outline--use-buttons-p) (outline-map-region (lambda () ;; `outline--cycle-state' will fail if we're in a totally @@ -1073,7 +1077,7 @@ If non-nil, EVENT should be a mouse event." (interactive (list last-nonmenu-event)) (when (mouse-event-p event) (mouse-set-point event)) - (when (and outline-minor-mode-use-buttons outline-minor-mode) + (when (outline--use-buttons-p) (outline--insert-open-button)) (outline-flag-subtree nil))