Subject: bug#35353: 26.2; Buffer *xref*: (1) hard-coded mouse-1, (2) major mode name

From: Dmitry Gutov <[email-masked]>
Date: Mon, 22 Apr 2019 13:52:17 +0300

On 22.04.2019 13:21, Eli Zaretskii wrote:

>>> So we already support mouse-1 clicks, don't we?  Or am I again missing
>>> something?
>>
>> Yes, but apparently we don't honor mouse-1-click-follows-link.
> 
> FWIW, I don't see that as a serious issue in this case.  Feel free to
> close as wontfix, if you want.

The fix is not hard, though. Is the variable more targeted on other use 
cases? Or is it just obscure enough for us not to bother?

The patch looks like this (to be accompanied with an appropriate renaming):

diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index e5e59721eb..463f72ae6f 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -722,8 +722,9 @@ xref--next-error-function
  (defvar xref--button-map
    (let ((map (make-sparse-keymap)))
      (define-key map [(control ?m)] #'xref-goto-xref)
-    (define-key map [mouse-1] #'xref-goto-xref)
-    (define-key map [mouse-2] #'xref--mouse-2)
+    (define-key map [follow-link] 'mouse-face)
+    (define-key map [mouse-2] #'xref-goto-xref)
+    (define-key map [mouse-1] #'xref--mouse-2)
      map))

  (defun xref--mouse-2 (event)