* Re: emacs-28 354c834: Fix `browse-url-interactive-arg' for certain kinds of events [not found] ` <20211120075814.63AB3209FD@vcs0.savannah.gnu.org> @ 2021-11-20 13:20 ` Stefan Monnier 2021-11-21 8:29 ` Lars Ingebrigtsen 0 siblings, 1 reply; 7+ messages in thread From: Stefan Monnier @ 2021-11-20 13:20 UTC (permalink / raw) To: Po Lu; +Cc: emacs-devel > Fix `browse-url-interactive-arg' for certain kinds of events > > * lisp/net/browse-url.el (browse-url-interactive-arg): Don't > call `mouse-set-point' unless event is actually a mouse event. > --- > lisp/net/browse-url.el | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el > index 3af37e4..50d11b4 100644 > --- a/lisp/net/browse-url.el > +++ b/lisp/net/browse-url.el > @@ -730,7 +730,8 @@ position clicked before acting. > This function returns a list (URL NEW-WINDOW-FLAG) > for use in `interactive'." > (let ((event (elt (this-command-keys) 0))) > - (and (listp event) (mouse-set-point event))) > + (when (mouse-event-p event) > + (mouse-set-point event))) > (list (read-string prompt (or (and transient-mark-mode mark-active > ;; rfc2396 Appendix E. > (replace-regexp-in-string Shouldn't this be fixed in `mouse-set-point` (or even `event-end` and `event-start`) instead, and then we should remove the `listp` test since `mouse-set-point` nowadays should work with any kind of event. Stefan ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: emacs-28 354c834: Fix `browse-url-interactive-arg' for certain kinds of events 2021-11-20 13:20 ` emacs-28 354c834: Fix `browse-url-interactive-arg' for certain kinds of events Stefan Monnier @ 2021-11-21 8:29 ` Lars Ingebrigtsen 2021-11-21 9:19 ` Po Lu 0 siblings, 1 reply; 7+ messages in thread From: Lars Ingebrigtsen @ 2021-11-21 8:29 UTC (permalink / raw) To: Stefan Monnier; +Cc: Po Lu, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: > Shouldn't this be fixed in `mouse-set-point` (or even `event-end` and > `event-start`) instead, and then we should remove the `listp` test since > `mouse-set-point` nowadays should work with any kind of event. I think it would be convenient if `mouse-set-point' did nothing if the event given isn't a mouse event -- we have a bunch of commands that are both mousey and non-mousey. In addition, perhaps there should be a new interactive spec for "set the mouse point if called from the mouse"? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: emacs-28 354c834: Fix `browse-url-interactive-arg' for certain kinds of events 2021-11-21 8:29 ` Lars Ingebrigtsen @ 2021-11-21 9:19 ` Po Lu 2021-11-21 14:37 ` Stefan Monnier 0 siblings, 1 reply; 7+ messages in thread From: Po Lu @ 2021-11-21 9:19 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Stefan Monnier, emacs-devel Lars Ingebrigtsen <larsi@gnus.org> writes: >> Shouldn't this be fixed in `mouse-set-point` (or even `event-end` and >> `event-start`) instead, and then we should remove the `listp` test since >> `mouse-set-point` nowadays should work with any kind of event. > I think it would be convenient if `mouse-set-point' did nothing if the > event given isn't a mouse event -- we have a bunch of commands that are > both mousey and non-mousey. Either way, I think we should not change the behavior of `mouse-set-point' in the release branch. It is documented to only accept mouse click events. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: emacs-28 354c834: Fix `browse-url-interactive-arg' for certain kinds of events 2021-11-21 9:19 ` Po Lu @ 2021-11-21 14:37 ` Stefan Monnier 2021-11-21 17:04 ` Lars Ingebrigtsen 2021-11-22 0:45 ` Po Lu 0 siblings, 2 replies; 7+ messages in thread From: Stefan Monnier @ 2021-11-21 14:37 UTC (permalink / raw) To: Po Lu; +Cc: Lars Ingebrigtsen, emacs-devel >>> Shouldn't this be fixed in `mouse-set-point` (or even `event-end` and >>> `event-start`) instead, and then we should remove the `listp` test since >>> `mouse-set-point` nowadays should work with any kind of event. > >> I think it would be convenient if `mouse-set-point' did nothing if the >> event given isn't a mouse event -- we have a bunch of commands that are >> both mousey and non-mousey. It's been that way already for quite a while. Try to call it with an event like `?a`. This is handled in `event-end`. It's just that this special handling did not account for events like `(menu-bar)`. > Either way, I think we should not change the behavior of > `mouse-set-point' in the release branch. I'd agree with that, I'm talking about what goes on `master`. So, more concretely I propose the patch below for `master`. Stefan diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index f85f5f6149..c33517ea10 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el @@ -737,8 +737,7 @@ browse-url-interactive-arg 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 diff --git a/lisp/subr.el b/lisp/subr.el index 7ba764880e..4e06aefd06 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -1553,22 +1553,22 @@ event-start `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. ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: emacs-28 354c834: Fix `browse-url-interactive-arg' for certain kinds of events 2021-11-21 14:37 ` Stefan Monnier @ 2021-11-21 17:04 ` Lars Ingebrigtsen 2021-11-22 0:45 ` Po Lu 1 sibling, 0 replies; 7+ messages in thread From: Lars Ingebrigtsen @ 2021-11-21 17:04 UTC (permalink / raw) To: Stefan Monnier; +Cc: Po Lu, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: > It's been that way already for quite a while. Try to call it with an > event like `?a`. This is handled in `event-end`. It's just that this > special handling did not account for events like `(menu-bar)`. Right; I thought I remembered this just working without any checks, so I was surprised that we had to add checks now. (But I assumed I just misremembered.) > So, more concretely I propose the patch below for `master`. Looks good to me. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: emacs-28 354c834: Fix `browse-url-interactive-arg' for certain kinds of events 2021-11-21 14:37 ` Stefan Monnier 2021-11-21 17:04 ` Lars Ingebrigtsen @ 2021-11-22 0:45 ` Po Lu 2021-11-22 19:25 ` Stefan Monnier 1 sibling, 1 reply; 7+ messages in thread From: Po Lu @ 2021-11-22 0:45 UTC (permalink / raw) To: Stefan Monnier; +Cc: Lars Ingebrigtsen, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: > So, more concretely I propose the patch below for `master`. I think it needs to be announced in NEWS, as it changes previously documented behaviour. Thanks. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: emacs-28 354c834: Fix `browse-url-interactive-arg' for certain kinds of events 2021-11-22 0:45 ` Po Lu @ 2021-11-22 19:25 ` Stefan Monnier 0 siblings, 0 replies; 7+ messages in thread From: Stefan Monnier @ 2021-11-22 19:25 UTC (permalink / raw) To: Po Lu; +Cc: Lars Ingebrigtsen, emacs-devel >> So, more concretely I propose the patch below for `master`. > I think it needs to be announced in NEWS, as it changes previously > documented behaviour. The actual change in semantics was made in 2012, so I think it's a bit late for that ;-) Stefan ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-11-22 19:25 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <20211120075812.24103.86181@vcs0.savannah.gnu.org> [not found] ` <20211120075814.63AB3209FD@vcs0.savannah.gnu.org> 2021-11-20 13:20 ` emacs-28 354c834: Fix `browse-url-interactive-arg' for certain kinds of events Stefan Monnier 2021-11-21 8:29 ` Lars Ingebrigtsen 2021-11-21 9:19 ` Po Lu 2021-11-21 14:37 ` Stefan Monnier 2021-11-21 17:04 ` Lars Ingebrigtsen 2021-11-22 0:45 ` Po Lu 2021-11-22 19:25 ` Stefan Monnier
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).