Fix menu-bar mouse clicks in "C-h c" and "C-h k" (bug#53322)

* lisp/subr.el (event-start, event-end): Handle '(menu-bar)'
events.
* lisp/net/browse-url.el (browse-url-interactive-arg): Simplify
accordingly.

(cherry picked from commit 9ceb3070e3)
This commit is contained in:
Stefan Monnier 2021-11-22 14:23:26 -05:00 committed by Eli Zaretskii
parent 11ea45c9e4
commit f08dfa9b53
2 changed files with 11 additions and 12 deletions

View file

@ -730,8 +730,7 @@ position clicked before acting.
This function returns a list (URL NEW-WINDOW-FLAG)
for use in `interactive'."
(let ((event (elt (this-command-keys) 0)))
(when (mouse-event-p event)
(mouse-set-point event)))
(mouse-set-point event))
(list (read-string prompt (or (and transient-mark-mode mark-active
;; rfc2396 Appendix E.
(replace-regexp-in-string

View file

@ -1511,22 +1511,22 @@ nil or (STRING . POSITION)'.
`posn-timestamp': The time the event occurred, in milliseconds.
For more information, see Info node `(elisp)Click Events'."
(if (consp event) (nth 1 event)
;; Use `window-point' for the case when the current buffer
;; is temporarily switched to some other buffer (bug#50256)
(or (posn-at-point (window-point))
(list (selected-window) (window-point) '(0 . 0) 0))))
(or (and (consp event) (nth 1 event))
;; Use `window-point' for the case when the current buffer
;; is temporarily switched to some other buffer (bug#50256)
(posn-at-point (window-point))
(list (selected-window) (window-point) '(0 . 0) 0)))
(defun event-end (event)
"Return the ending position of EVENT.
EVENT should be a click, drag, or key press event.
See `event-start' for a description of the value returned."
(if (consp event) (nth (if (consp (nth 2 event)) 2 1) event)
;; Use `window-point' for the case when the current buffer
;; is temporarily switched to some other buffer (bug#50256)
(or (posn-at-point (window-point))
(list (selected-window) (window-point) '(0 . 0) 0))))
(or (and (consp event) (nth (if (consp (nth 2 event)) 2 1) event))
;; Use `window-point' for the case when the current buffer
;; is temporarily switched to some other buffer (bug#50256)
(posn-at-point (window-point))
(list (selected-window) (window-point) '(0 . 0) 0)))
(defsubst event-click-count (event)
"Return the multi-click count of EVENT, a click or drag event.