diff --git a/lisp/net/dictionary.el b/lisp/net/dictionary.el index f33cbaf112..7a84f9978f 100644 --- a/lisp/net/dictionary.el +++ b/lisp/net/dictionary.el @@ -1368,5 +1368,27 @@ global-dictionary-tooltip-mode (if on #'dictionary-tooltip-track-mouse #'ignore)) on)) +(defun dictionary-search-word-at-mouse (event) + (interactive "e") + (let ((word (save-window-excursion + (save-excursion + (mouse-set-point event) + (current-word))))) + (selected-window) + (dictionary-search word))) + +(defun context-menu-dictionary (menu) + "Dictionary word at point menu." + (save-excursion + (mouse-set-point last-input-event) + (when (thing-at-point 'word) + (define-key menu [dictionary-separator] menu-bar-separator) + (define-key menu [dictionary-search-word-at-mouse] + '(menu-item "Dictionary Search" dictionary-search-word-at-mouse + :help "Search the word at mouse click in dictionary")))) + menu) + +(add-hook 'context-menu-functions 'context-menu-dictionary 15) + (provide 'dictionary) ;;; dictionary.el ends here