]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix outline image icon display (bug#57813)
authorJuri Linkov <juri@linkov.net>
Thu, 15 Sep 2022 16:30:17 +0000 (19:30 +0300)
committerJuri Linkov <juri@linkov.net>
Thu, 15 Sep 2022 16:30:17 +0000 (19:30 +0300)
* lisp/outline.el (outline--make-button-overlay): Don't overwrite
image display with string display when image exists.
(outline--fix-up-all-buttons): Optimize.

lisp/outline.el

index b19e0cf8119241bac97cff4004e4cc7d3dd03cd2..c9d1a4ac64bbd0dc6370023ac56fc9bf3d59780c 100644 (file)
@@ -1003,11 +1003,11 @@ If non-nil, EVENT should be a mouse event."
       ;; movement commands work more logically.
       (when (derived-mode-p 'special-mode)
         (put-text-property (point) (1+ (point)) 'face (plist-get icon 'face)))
-      (when-let ((image (plist-get icon 'image)))
-        (overlay-put o 'display image))
-      (overlay-put o 'display (concat (plist-get icon 'string)
-                                      (string (char-after (point)))))
-      (overlay-put o 'face (plist-get icon 'face)))
+      (if-let ((image (plist-get icon 'image)))
+          (overlay-put o 'display image)
+        (overlay-put o 'display (concat (plist-get icon 'string)
+                                        (string (char-after (point)))))
+        (overlay-put o 'face (plist-get icon 'face))))
     o))
 
 (defun outline--insert-open-button ()
@@ -1041,11 +1041,11 @@ If non-nil, EVENT should be a mouse event."
                          "<mouse-2>" #'outline-show-subtree))))))
 
 (defun outline--fix-up-all-buttons (&optional from to)
-  (when from
-    (save-excursion
-      (goto-char from)
-      (setq from (line-beginning-position))))
   (when (outline--use-buttons-p)
+    (when from
+      (save-excursion
+        (goto-char from)
+        (setq from (line-beginning-position))))
     (outline-map-region
      (lambda ()
        ;; `outline--cycle-state' will fail if we're in a totally