bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#37515: 27.0.50; button.el doesn't support help-echo function


From: Katsumi Yamaoka
Subject: bug#37515: 27.0.50; button.el doesn't support help-echo function
Date: Thu, 26 Sep 2019 10:14:52 +0900
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (x86_64-pc-cygwin)

Hi,

I found the `forward-button' command shows a Lisp function object
if the value of the `help-echo' text property at the destination
point is a function.  But is should be its return value.

,---- (info "(elisp) Special Properties")
| `help-echo'
|  If text has a string as its `help-echo' property, then when you
|  move the mouse onto that text, Emacs displays that string in the
|  echo area, or in the tooltip window (*note Tooltips::).
|
|  If the value of the `help-echo' property is a function, that
|  function is called with three arguments, WINDOW, OBJECT and POS and
|  should return a help string or `nil for none.
`----

So, `forward-button' should be fixed to something like this:

--8<---------------cut here---------------start------------->8---
--- button.el~  2019-07-30 21:20:12.288879200 +0000
+++ button.el   2019-09-26 01:12:28.492808400 +0000
@@ -513,8 +513,11 @@
             nil
          (user-error (if wrap "No buttons!" "No more buttons")))
       (let ((msg (and display-message (button-get button 'help-echo))))
-       (when msg
-         (message "%s" msg)))
+       (cond ((functionp msg)
+              (message
+               "%s" (funcall msg (selected-window) (current-buffer) (point))))
+             (msg
+              (message "%s" msg))))
       button)))
 
 (defun backward-button (n &optional wrap display-message no-error)
--8<---------------cut here---------------end--------------->8---

Thanks.





reply via email to

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