Select the right buffer for event in context-menu functions (bug#9923)
* lisp/mouse.el (context-menu-region): * lisp/progmodes/prog-mode.el (prog-context-menu): Switch to the buffer displayed by the window of the event before using syntax-ppss, char-after.
This commit is contained in:
parent
d529207b0e
commit
da23e607d3
2 changed files with 12 additions and 9 deletions
|
@ -479,14 +479,15 @@ Some context functions add menu items below the separator."
|
|||
`(menu-item "All"
|
||||
,(lambda (e) (interactive "e") (mark-thing-at-mouse e 'buffer))
|
||||
:help "Mark the whole buffer for a subsequent cut/copy"))
|
||||
(when (let* ((pos (posn-point (event-end click)))
|
||||
(char (when pos (char-after pos))))
|
||||
(or (and char (eq (char-syntax char) ?\"))
|
||||
(nth 3 (save-excursion (syntax-ppss pos)))))
|
||||
(define-key-after submenu [mark-string]
|
||||
`(menu-item "String"
|
||||
,(lambda (e) (interactive "e") (mark-thing-at-mouse e 'string))
|
||||
:help "Mark the string at click for a subsequent cut/copy")))
|
||||
(with-current-buffer (window-buffer (posn-window (event-end click)))
|
||||
(when (let* ((pos (posn-point (event-end click)))
|
||||
(char (when pos (char-after pos))))
|
||||
(or (and char (eq (char-syntax char) ?\"))
|
||||
(nth 3 (save-excursion (syntax-ppss pos)))))
|
||||
(define-key-after submenu [mark-string]
|
||||
`(menu-item "String"
|
||||
,(lambda (e) (interactive "e") (mark-thing-at-mouse e 'string))
|
||||
:help "Mark the string at click for a subsequent cut/copy"))))
|
||||
(define-key-after submenu [mark-line]
|
||||
`(menu-item "Line"
|
||||
,(lambda (e) (interactive "e") (mark-thing-at-mouse e 'line))
|
||||
|
|
|
@ -87,7 +87,9 @@
|
|||
'mark-whole-buffer)
|
||||
|
||||
;; Include text-mode select menu only in strings and comments.
|
||||
(when (nth 8 (save-excursion (syntax-ppss (posn-point (event-end click)))))
|
||||
(when (nth 8 (save-excursion
|
||||
(with-current-buffer (window-buffer (posn-window (event-end click)))
|
||||
(syntax-ppss (posn-point (event-end click))))))
|
||||
(text-mode-context-menu menu click))
|
||||
|
||||
menu)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue