diff options
author | Glenn Morris <rgm@gnu.org> | 2014-08-10 17:59:34 -0700 |
---|---|---|
committer | Glenn Morris <rgm@gnu.org> | 2014-08-10 17:59:34 -0700 |
commit | c7367d2de3343e56171c4fe6d439a3ed5f40d06c (patch) | |
tree | 54fe9166f6b4320d9518bbac11e2d575a9fda7c2 /lisp/mouse.el | |
parent | 6b7d077506304f440d311fa7b29d210b7a3e121c (diff) | |
parent | f314e84fce8b394da20aa1d69121c74fb34f9a1e (diff) | |
download | emacs-c7367d2de3343e56171c4fe6d439a3ed5f40d06c.tar.gz emacs-c7367d2de3343e56171c4fe6d439a3ed5f40d06c.tar.bz2 emacs-c7367d2de3343e56171c4fe6d439a3ed5f40d06c.zip |
Merge from emacs-24; up to 2014-06-28T23:35:17Z!rgm@gnu.org
Diffstat (limited to 'lisp/mouse.el')
-rw-r--r-- | lisp/mouse.el | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/lisp/mouse.el b/lisp/mouse.el index 2606c8b4ca4..a10f4d67593 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -94,15 +94,14 @@ point at the click position." (defun mouse--down-1-maybe-follows-link (&optional _prompt) "Turn `mouse-1' events into `mouse-2' events if follows-link. Expects to be bound to `down-mouse-1' in `key-translation-map'." - (if (or (null mouse-1-click-follows-link) - (not (eq (if (eq mouse-1-click-follows-link 'double) - 'double-down-mouse-1 'down-mouse-1) - (car-safe last-input-event))) - (not (mouse-on-link-p (event-start last-input-event))) - (and (not mouse-1-click-in-non-selected-windows) - (not (eq (selected-window) - (posn-window (event-start last-input-event)))))) - nil + (when (and mouse-1-click-follows-link + (eq (if (eq mouse-1-click-follows-link 'double) + 'double-down-mouse-1 'down-mouse-1) + (car-safe last-input-event)) + (mouse-on-link-p (event-start last-input-event)) + (or mouse-1-click-in-non-selected-windows + (eq (selected-window) + (posn-window (event-start last-input-event))))) (let ((this-event last-input-event) (timedout (sit-for (if (numberp mouse-1-click-follows-link) @@ -118,19 +117,14 @@ Expects to be bound to `down-mouse-1' in `key-translation-map'." 'double-mouse-1 'mouse-1)) ;; Turn the mouse-1 into a mouse-2 to follow links. (let ((newup (if (eq mouse-1-click-follows-link 'double) - 'double-mouse-2 'mouse-2)) - (newdown (if (eq mouse-1-click-follows-link 'double) - 'double-down-mouse-2 'down-mouse-2))) + 'double-mouse-2 'mouse-2))) ;; If mouse-2 has never been done by the user, it doesn't have ;; the necessary property to be interpreted correctly. - (put newup 'event-kind (get (car event) 'event-kind)) - (put newdown 'event-kind (get (car this-event) 'event-kind)) + (unless (get newup 'event-kind) + (put newup 'event-kind (get (car event) 'event-kind))) (push (cons newup (cdr event)) unread-command-events) - ;; 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)) + ;; Don't change the down event, only the up-event (bug#18212). + nil) (push event unread-command-events) nil)))))) |