]> git.eshelyaron.com Git - emacs.git/commitdiff
(mouse-posn-property): Improve doc string.
authorDavid Kastrup <dak@gnu.org>
Wed, 20 Sep 2006 04:56:58 +0000 (04:56 +0000)
committerDavid Kastrup <dak@gnu.org>
Wed, 20 Sep 2006 04:56:58 +0000 (04:56 +0000)
(mouse-on-link-p): Change buffers for function calls on links.

lisp/ChangeLog
lisp/mouse.el

index 5ce0d6d18f2fa90dc36a8dc46d01494bf1786b9b..736adf706fcc739bba8c3b4b1513f30a6966374c 100644 (file)
@@ -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.
 
index 2510888f4684268031ac594841ea2bff3957507b..18b16c6460d837a05a717c5297665469b24818e1 100644 (file)
@@ -776,7 +776,14 @@ If the click is in the echo area, display the `*Messages*' buffer."
 
 
 (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 @@ at the same position."
      ((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)