aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoão Távora2017-10-10 12:47:46 +0100
committerJoão Távora2017-10-10 13:08:41 +0100
commit042b3cfbd2ed9da2404d1b3b8ab786c92b507d42 (patch)
treee0b96645f754a46abf885a0934ab4a89e4a4ebe8
parent3dfa2ca4dc471412a8b5442357d5d4bec6611f3f (diff)
downloademacs-042b3cfbd2ed9da2404d1b3b8ab786c92b507d42.tar.gz
emacs-042b3cfbd2ed9da2404d1b3b8ab786c92b507d42.zip
Fix two Flymake bugs
* lisp/progmodes/flymake.el (define-fringe-bitmap): Protect against --without-x. (flymake--mode-line-format): Ensure mode-line's mouse-4 and mouse-5 work in their own windows.
-rw-r--r--lisp/progmodes/flymake.el47
1 files changed, 25 insertions, 22 deletions
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index c52dad722ce..245cd1ee577 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -142,24 +142,25 @@ Specifically, start it when the buffer is actually displayed."
142 "If non-nil, moving to errors wraps around buffer boundaries." 142 "If non-nil, moving to errors wraps around buffer boundaries."
143 :type 'boolean) 143 :type 'boolean)
144 144
145(define-fringe-bitmap 'flymake-double-exclamation-mark 145(when (fboundp 'define-fringe-bitmap)
146 (vector #b00000000 146 (define-fringe-bitmap 'flymake-double-exclamation-mark
147 #b00000000 147 (vector #b00000000
148 #b00000000 148 #b00000000
149 #b00000000 149 #b00000000
150 #b01100110 150 #b00000000
151 #b01100110 151 #b01100110
152 #b01100110 152 #b01100110
153 #b01100110 153 #b01100110
154 #b01100110 154 #b01100110
155 #b01100110 155 #b01100110
156 #b01100110 156 #b01100110
157 #b01100110 157 #b01100110
158 #b00000000 158 #b01100110
159 #b01100110 159 #b00000000
160 #b00000000 160 #b01100110
161 #b00000000 161 #b00000000
162 #b00000000)) 162 #b00000000
163 #b00000000)))
163 164
164(defvar-local flymake-timer nil 165(defvar-local flymake-timer nil
165 "Timer for starting syntax check.") 166 "Timer for starting syntax check.")
@@ -1040,13 +1041,15 @@ applied."
1040 ,(let ((map (make-sparse-keymap)) 1041 ,(let ((map (make-sparse-keymap))
1041 (type type)) 1042 (type type))
1042 (define-key map [mode-line mouse-4] 1043 (define-key map [mode-line mouse-4]
1043 (lambda (_event) 1044 (lambda (event)
1044 (interactive "e") 1045 (interactive "e")
1045 (flymake-goto-prev-error 1 (list type) t))) 1046 (with-selected-window (posn-window (event-start event))
1047 (flymake-goto-prev-error 1 (list type) t))))
1046 (define-key map [mode-line mouse-5] 1048 (define-key map [mode-line mouse-5]
1047 (lambda (_event) 1049 (lambda (event)
1048 (interactive "e") 1050 (interactive "e")
1049 (flymake-goto-next-error 1 (list type) t))) 1051 (with-selected-window (posn-window (event-start event))
1052 (flymake-goto-next-error 1 (list type) t))))
1050 map) 1053 map)
1051 help-echo 1054 help-echo
1052 ,(concat (format "%s diagnostics of type %s\n" 1055 ,(concat (format "%s diagnostics of type %s\n"