]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix flyspell-correct-word selected from context menu opened with the keyboard
authorJuri Linkov <juri@linkov.net>
Thu, 18 Nov 2021 18:23:58 +0000 (20:23 +0200)
committerJuri Linkov <juri@linkov.net>
Thu, 18 Nov 2021 18:23:58 +0000 (20:23 +0200)
* lisp/mouse.el (context-menu-open): Call interactively a command
returned by `context-menu-map' such as `flyspell-correct-word' (bug#50067).

* lisp/textmodes/flyspell.el (flyspell-correct-word): Handle the
case when it's called by a key bound to `context-menu-open'.
Then it should work the same way as `C-c $' typed on misspelled word
where the arg `event' of `flyspell-correct-word-before-point' is nil.

lisp/mouse.el
lisp/textmodes/flyspell.el

index 091383bf110e4b4473c192c1a2ad1a1ab23eae36..b6448a13f3a2c420f589e0f87f959e6be9fae200 100644 (file)
@@ -541,8 +541,11 @@ activates the menu whose contents depends on its surrounding context."
   "Start key navigation of the context menu.
 This is the keyboard interface to \\[context-menu-map]."
   (interactive)
-  (let ((inhibit-mouse-event-check t))
-    (popup-menu (context-menu-map) (point))))
+  (let ((inhibit-mouse-event-check t)
+        (map (context-menu-map)))
+    (if (commandp map)
+        (call-interactively map)
+      (popup-menu map (point)))))
 
 (global-set-key [S-f10] 'context-menu-open)
 
index 1d450b50012de27b949b9cfeccaaaff765cd4f0e..258e5fde674250191aa33f77359abe5fd57c7e42 100644 (file)
@@ -2160,7 +2160,7 @@ The word checked is the word at the mouse position."
   (interactive "e")
   (let ((save (point)))
     (mouse-set-point event)
-    (flyspell-correct-word-before-point event save)))
+    (flyspell-correct-word-before-point (and (consp event) event) save)))
 
 (defun flyspell-correct-word-before-point (&optional event opoint)
   "Pop up a menu of possible corrections for misspelled word before point.