Subject: Re: bug#28732: flymake mouse-wheel portability fix

From: Glenn Morris <[email-masked]>
Date: Mon, 26 Feb 2018 16:38:50 -0500

Hi,

This change causes errors in without-x builds.
At compile-time:
    
    In flymake--mode-line-format:
    progmodes/flymake.el:1086:49:Warning: reference to free variable
        `mouse-wheel-down-event'
    progmodes/flymake.el:1092:49:Warning: reference to free variable
        `mouse-wheel-up-event'

At run-time:
   Error during redisplay: (eval (flymake--mode-line-format)) signaled
   (void-variable mouse-wheel-down-event)

Charles A. Roelli wrote:

> The flymake mode line mouse-wheel scroll thing needs the following fix
> to be more portable.
>
> This change also removes an extra newline at the end of the tooltip,
> which doesn't have to be there as far as I can see.
>
> diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
> index 45f0adf..007de8f 100644
> --- a/lisp/progmodes/flymake.el
> +++ b/lisp/progmodes/flymake.el
> @@ -951,11 +951,13 @@ flymake--mode-line-format
>                       keymap
>                       ,(let ((map (make-sparse-keymap))
>                              (type type))
> -                        (define-key map [mode-line mouse-4]
> +                        (define-key map (vector 'mode-line
> +                                                mouse-wheel-down-event)
>                            (lambda (_event)
>                              (interactive "e")
>                              (flymake-goto-prev-error 1 (list type) t)))
> -                        (define-key map [mode-line mouse-5]
> +                        (define-key map (vector 'mode-line
> +                                                mouse-wheel-up-event)
>                            (lambda (_event)
>                              (interactive "e")
>                              (flymake-goto-next-error 1 (list type) t)))
> @@ -967,7 +969,9 @@ flymake--mode-line-format
>                                                    'face face)
>                                        (propertize (format "%s" type)
>                                                    'face face))
> -                              "mouse-4/mouse-5: previous/next of this type\n"))
> +                              (format "%s/%s: previous/next of this type"
> +                                      mouse-wheel-down-event
> +                                      mouse-wheel-up-event)))
>             into forms
>             finally return
>             `((:propertize "[")