|
69 | 69 | :group 'right-click-context
|
70 | 70 | :type 'string)
|
71 | 71 |
|
| 72 | +(defcustom right-click-context-mouse-set-point-before-open-menu 'not-region |
| 73 | + "Control the position of the mouse pointer before opening the menu." |
| 74 | + :group 'right-click-context |
| 75 | + :type '(choice (const :tag "When not Region activated" 'not-region) |
| 76 | + (const :tag "Always set cursor to mouse pointer" 'always) |
| 77 | + (const :tag "Not set cursor to mouse pointer" nil))) |
| 78 | + |
72 | 79 | (defvar right-click-context-mode-map
|
73 | 80 | (let ((map (make-sparse-keymap)))
|
74 |
| - (define-key map (kbd "<mouse-3>") #'right-click-context-menu) |
| 81 | + (define-key map (kbd "<mouse-3>") #'right-click-context-click-menu) |
75 | 82 | map)
|
76 | 83 | "Keymap used in right-click-context-mode.")
|
77 | 84 |
|
@@ -190,11 +197,20 @@ You probably want to just add follows code to your .emacs file (init.el).
|
190 | 197 | right-click-context-mode-map
|
191 | 198 | :group 'right-click-context)
|
192 | 199 |
|
| 200 | +;;;###autoload |
| 201 | +(defun right-click-context-click-menu (event) |
| 202 | + "Open Right Click Context menu by Mouse Click `EVENT'." |
| 203 | + (interactive "e") |
| 204 | + (when (or (eq right-click-context-mouse-set-point-before-open-menu 'always) |
| 205 | + (and (null mark-active) |
| 206 | + (eq right-click-context-mouse-set-point-before-open-menu 'not-region))) |
| 207 | + (call-interactively #'mouse-set-point)) |
| 208 | + (right-click-context-menu)) |
| 209 | + |
193 | 210 | ;;;###autoload
|
194 | 211 | (defun right-click-context-menu ()
|
195 | 212 | "Open Right Click Context menu."
|
196 | 213 | (interactive)
|
197 |
| - (call-interactively #'mouse-set-point) |
198 | 214 | (let ((value (popup-cascade-menu (right-click-context--build-menu-for-popup-el (right-click-context--menu-tree) nil))))
|
199 | 215 | (when value
|
200 | 216 | (if (symbolp value)
|
|
0 commit comments