emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 3ad9d5c: Don't lose key bindings on mis-spelled tex


From: Eli Zaretskii
Subject: [Emacs-diffs] master 3ad9d5c: Don't lose key bindings on mis-spelled text in flyspell-mode
Date: Sun, 30 Apr 2017 14:58:11 -0400 (EDT)

branch: master
commit 3ad9d5c347739bb6c5450ed443ffa1608a94394c
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    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)
---
 lisp/textmodes/flyspell.el | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index 0edf9b1..ecf729d 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -447,7 +447,9 @@ like <img alt=\"Some thing.\">."
 ;;*    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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]