From: Eli Zaretskii Date: Sun, 30 Apr 2017 18:55:58 +0000 (+0300) Subject: Don't lose key bindings on mis-spelled text in flyspell-mode X-Git-Tag: emacs-26.0.90~521^2~509 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3ad9d5c347739bb6c5450ed443ffa1608a94394c;p=emacs.git Don't lose key bindings on mis-spelled text in flyspell-mode * lisp/textmodes/flyspell.el (flyspell-mouse-map): Bind mouse-2 explicitly. (make-flyspell-overlay): If the mis-spelled text already has a 'keymap' property, make that keymap the parent of flyspell-mouse-map, so as not to lose the parent's bindings. (Bug#26672) --- diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index 0edf9b1a47e..ecf729d15b7 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el @@ -447,7 +447,9 @@ like \"Some." ;;* The minor mode declaration. */ ;;*---------------------------------------------------------------------*/ (defvar flyspell-mouse-map - (make-sparse-keymap) + (let ((map (make-sparse-keymap))) + (define-key map [mouse-2] 'flyspell-correct-word) + map) "Keymap for Flyspell to put on erroneous words.") (defvar flyspell-mode-map @@ -1759,6 +1761,9 @@ for the overlay." (overlay-put overlay 'flyspell-overlay t) (overlay-put overlay 'evaporate t) (overlay-put overlay 'help-echo "mouse-2: correct word at point") + ;; If misspelled text has a 'keymap' property, let that remain in + ;; effect for the bindings that flyspell-mouse-map doesn't override. + (set-keymap-parent flyspell-mouse-map (get-char-property beg 'keymap)) (overlay-put overlay 'keymap flyspell-mouse-map) (when (eq face 'flyspell-incorrect) (and (stringp flyspell-before-incorrect-word-string)