From 0e6008c58ee197de5708e6c26e4994da89945c4f Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 19 Mar 2013 08:47:10 -0400 Subject: [PATCH] * lisp/mouse.el (mouse--down-1-maybe-follows-link): Fix follow-link remapping in mode-line. (mouse-on-link-p): Also check [mode-line follow-link] bindings. --- lisp/ChangeLog | 6 ++++++ lisp/mouse.el | 9 ++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a64703c3d24..aae880aa8a2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2013-03-19 Stefan Monnier + + * mouse.el (mouse--down-1-maybe-follows-link): Fix follow-link + remapping in mode-line. + (mouse-on-link-p): Also check [mode-line follow-link] bindings. + 2013-03-19 Dmitry Gutov * whitespace.el (whitespace-color-on): Use `prepend' OVERRIDE diff --git a/lisp/mouse.el b/lisp/mouse.el index ea6b1b04de0..333a1cef703 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -128,7 +128,11 @@ Expects to be bound to `down-mouse-1' in `key-translation-map'." (put newup 'event-kind (get (car event) 'event-kind)) (put newdown 'event-kind (get (car this-event) 'event-kind)) (push (cons newup (cdr event)) unread-command-events) - (vector (cons newdown (cdr this-event)))) + ;; Modify the event in place, so read-key-sequence doesn't + ;; generate a second fake prefix key (see fake_prefixed_keys in + ;; src/keyboard.c). + (setcar this-event newdown) + (vector this-event)) (push event unread-command-events) nil)))))) @@ -760,6 +764,9 @@ at the same position." mouse-1-click-in-non-selected-windows (eq (selected-window) (posn-window pos))) (or (mouse-posn-property pos 'follow-link) + (let ((area (posn-area pos))) + (when area + (key-binding (vector area 'follow-link) nil t pos))) (key-binding [follow-link] nil t pos))))) (cond ((eq action 'mouse-face) -- 2.39.2