]> git.eshelyaron.com Git - emacs.git/commitdiff
Only treat display strings as buttons if they have 'button' property
authorClément Pit-Claudel <clement.pitclaudel@live.com>
Sun, 26 Apr 2020 16:41:42 +0000 (12:41 -0400)
committerEli Zaretskii <eliz@gnu.org>
Sat, 9 May 2020 07:42:30 +0000 (10:42 +0300)
* lisp/button.el (push-button): Use 'posn-point' instead of
'posn-string' if the string doesn't have the 'button'
property (Bug#40859).

lisp/button.el

index b3afc4eca254c71b1815f8d1e89bff9bce81945a..3a6a6de774c8d612cbf00bbc614ceb3594bc6496 100644 (file)
@@ -469,10 +469,12 @@ return t."
       ;; POS is a mouse event; switch to the proper window/buffer
       (let ((posn (event-start pos)))
        (with-current-buffer (window-buffer (posn-window posn))
-         (if (posn-string posn)
-             ;; mode-line, header-line, or display string event.
-             (button-activate (posn-string posn) t)
-           (push-button (posn-point posn) t))))
+          (let* ((str (posn-string posn))
+                 (str-button (and str (get-text-property (cdr str) 'button (car str)))))
+           (if str-button
+               ;; mode-line, header-line, or display string event.
+               (button-activate str t)
+             (push-button (posn-point posn) t)))))
     ;; POS is just normal position
     (let ((button (button-at (or pos (point)))))
       (when button