Mercurial > emacs
changeset 73006:17ac31b82912
(mouse-posn-property): Improve doc string.
(mouse-on-link-p): Change buffers for function calls on links.
author | David Kastrup <dak@gnu.org> |
---|---|
date | Wed, 20 Sep 2006 04:56:58 +0000 |
parents | 69d661c19645 |
children | 637b0854d9b5 |
files | lisp/ChangeLog lisp/mouse.el |
diffstat | 2 files changed, 16 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Wed Sep 20 04:13:32 2006 +0000 +++ b/lisp/ChangeLog Wed Sep 20 04:56:58 2006 +0000 @@ -1,5 +1,8 @@ 2006-09-20 David Kastrup <dak@gnu.org> + * mouse.el (mouse-posn-property): Improve doc string. + (mouse-on-link-p): Change buffers for function calls on links. + * menu-bar.el (clipboard-yank): bomb out in interactive use if buffer is read-only.
--- a/lisp/mouse.el Wed Sep 20 04:13:32 2006 +0000 +++ b/lisp/mouse.el Wed Sep 20 04:56:58 2006 +0000 @@ -776,7 +776,14 @@ (defun mouse-posn-property (pos property) - "Look for a property at click position." + "Look for a property at click position. +POS may be either a buffer position or a click position like +those returned from `start-event'. If the click position is on +a string, the text property PROPERTY is examined. +If this is nil or the click is not on a string, then +the corresponding buffer position is searched for PROPERTY. +If PROPERTY is encountered in one of those places, +its value is returned." (if (consp pos) (let ((w (posn-window pos)) (pt (posn-point pos)) (str (posn-string pos))) @@ -835,9 +842,12 @@ ((eq action 'mouse-face) (and (mouse-posn-property pos 'mouse-face) t)) ((functionp action) - ;; FIXME: This is wrong if the click is in a different buffer. + ;; FIXME: This seems questionable if the click is not in a buffer. ;; Should we instead decide that `action' takes a `posn'? - (funcall action (if (consp pos) (posn-point pos) pos))) + (if (consp pos) + (with-current-buffer (window-buffer (posn-window pos)) + (funcall action (posn-point pos))) + (funcall action pos))) (t action)))) (defun mouse-fixup-help-message (msg)