* follow-link in grep buffer @ 2005-02-21 21:08 Nick Roberts 2005-02-21 21:19 ` Stefan Monnier ` (4 more replies) 0 siblings, 5 replies; 67+ messages in thread From: Nick Roberts @ 2005-02-21 21:08 UTC (permalink / raw) I realise that applications like web browsers use mouse-1 to follow links, so it is a good idea for Emacs to provide some consistency and it works well with Info pages. However, I am not sure if it is always appropriate as Emacs users understand that mouse-1 just generally moves the cursor, while mouse-2 might jump to another buffer. The grep buffer is an example. If I try to place the cursor anywhere on a line before the end of a match, the associated file pops up in another buffer. However I might just want to select that window to resize it. I could select the window by clicking on the modeline but if I click on the wrong part I get a different buffer. All this functionality must be daunting for the new user, so I suggest the following: 1) Mouse-1 is not used to follow links in the grep or compilation buffers. 2) If it has to be used for this purpose, then it only works where the match occurs (this must be easy to implement as it already has a different face) and the match is also underlined so that it looks like a link. Nick ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 21:08 follow-link in grep buffer Nick Roberts @ 2005-02-21 21:19 ` Stefan Monnier 2005-02-21 22:48 ` Nick Roberts 2005-02-21 21:45 ` Drew Adams ` (3 subsequent siblings) 4 siblings, 1 reply; 67+ messages in thread From: Stefan Monnier @ 2005-02-21 21:19 UTC (permalink / raw) Cc: emacs-devel > I realise that applications like web browsers use mouse-1 to follow links, so > it is a good idea for Emacs to provide some consistency and it works well with > Info pages. However, I am not sure if it is always appropriate as Emacs users > understand that mouse-1 just generally moves the cursor, while mouse-2 might > jump to another buffer. The grep buffer is an example. If I try to place the > cursor anywhere on a line before the end of a match, the associated file > pops up in another buffer. However I might just want to select that window > to resize it. I could select the window by clicking on the modeline but if I > click on the wrong part I get a different buffer. All this functionality must > be daunting for the new user, so I suggest the following: > 1) Mouse-1 is not used to follow links in the grep or compilation buffers. > 2) If it has to be used for this purpose, then it only works where the match > occurs (this must be easy to implement as it already has a different face) > and the match is also underlined so that it looks like a link. Based on your example, I'd say another option might be: - if the click is used to give focus, then don't follow the link. Stefan "who uses focus-follows-mouse and thus doesn't suffer from this problem (or suffers from it all the time and thus doesn't expect such things not to happen)" ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 21:19 ` Stefan Monnier @ 2005-02-21 22:48 ` Nick Roberts 2005-02-22 0:08 ` Drew Adams 2005-02-22 0:48 ` Jason Rumney 0 siblings, 2 replies; 67+ messages in thread From: Nick Roberts @ 2005-02-21 22:48 UTC (permalink / raw) Cc: emacs-devel > Based on your example, I'd say another option might be: > - if the click is used to give focus, then don't follow the link. Given that if you press the button longer it also doesn't follow the link, the tooltip tells you that it does, even without focus, and doesn't mention that mouse-2 does the job too (it's masked by mouse-1), I think it would only create further confusion. Nick ^ permalink raw reply [flat|nested] 67+ messages in thread
* RE: follow-link in grep buffer 2005-02-21 22:48 ` Nick Roberts @ 2005-02-22 0:08 ` Drew Adams 2005-02-22 9:48 ` Kim F. Storm 2005-02-22 0:48 ` Jason Rumney 1 sibling, 1 reply; 67+ messages in thread From: Drew Adams @ 2005-02-22 0:08 UTC (permalink / raw) > Based on your example, I'd say another option might be: > - if the click is used to give focus, then don't follow the link. Given that if you press the button longer it also doesn't follow the link, the tooltip tells you that it does, even without focus, and doesn't mention that mouse-2 does the job too (it's masked by mouse-1), I think it would only create further confusion. I made the same suggestion as Stefan, and I don't think it would lead to further confusion. As I mentioned, that is pretty much the behavior that Windows users experience every day (the first click establishes focus). And I can testify that it has saved my derriere more than once, when I accidentally clicked something (e.g. button) in a window that didn't have the focus. Of course, mouse-follows-focus would no doubt overrule this behavior, so it wouldn't help in that case. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-22 0:08 ` Drew Adams @ 2005-02-22 9:48 ` Kim F. Storm 2005-02-22 13:41 ` Stefan Monnier 2005-02-22 17:33 ` Drew Adams 0 siblings, 2 replies; 67+ messages in thread From: Kim F. Storm @ 2005-02-22 9:48 UTC (permalink / raw) Cc: emacs-devel "Drew Adams" <drew.adams@oracle.com> writes: > > Based on your example, I'd say another option might be: > > - if the click is used to give focus, then don't follow the link. > I made the same suggestion as Stefan, and I don't think it would lead to > further confusion. As I mentioned, that is pretty much the behavior that > Windows users experience every day (the first click establishes focus). And This makes sense! I just installed a change so that a mouse-1 click only follows a link if the window is already selected. The tooltip will now say to use mouse-2 to follow a link in a non-selected window and to use mouse-1 in a selected window. BTW, I hate double-clicks... > Of course, mouse-follows-focus would no doubt overrule this > behavior, It does. > so it wouldn't help in that case. With mouse-autoselect-window / mouse-follows-focus you don't need to click in the first place, so I don't see a "need to help" here. -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-22 9:48 ` Kim F. Storm @ 2005-02-22 13:41 ` Stefan Monnier 2005-02-22 14:24 ` Kim F. Storm 2005-02-22 14:25 ` Kim F. Storm 2005-02-22 17:33 ` Drew Adams 1 sibling, 2 replies; 67+ messages in thread From: Stefan Monnier @ 2005-02-22 13:41 UTC (permalink / raw) Cc: Drew Adams, emacs-devel >> I made the same suggestion as Stefan, and I don't think it would lead to >> further confusion. As I mentioned, that is pretty much the behavior that >> Windows users experience every day (the first click establishes focus). And > This makes sense! > I just installed a change so that a mouse-1 click only follows a link > if the window is already selected. I can't test it right now, so just so we're clear: What happens in the following scenario: - I'm working in Emacs's frame Foo, window Foo, showing buffer Foo. It's actually the only buffer/window/frame of this Emacs. - I switch to an xterm by clicking on its window. - I switch back to Emacs by mouse-1 clicking inside its window. Is that going to correctly "ignore" this last mouse-1 click other than make it change focus) because, from Emacs's point of view, the window Foo has always been and still is the selected window? Stefan ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-22 13:41 ` Stefan Monnier @ 2005-02-22 14:24 ` Kim F. Storm 2005-02-22 14:25 ` Kim F. Storm 1 sibling, 0 replies; 67+ messages in thread From: Kim F. Storm @ 2005-02-22 14:24 UTC (permalink / raw) Cc: Drew Adams, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >>> I made the same suggestion as Stefan, and I don't think it would lead to >>> further confusion. As I mentioned, that is pretty much the behavior that >>> Windows users experience every day (the first click establishes focus). And > >> This makes sense! > >> I just installed a change so that a mouse-1 click only follows a link >> if the window is already selected. > > I can't test it right now, so just so we're clear: > > What happens in the following scenario: > > - I'm working in Emacs's frame Foo, window Foo, showing buffer Foo. > It's actually the only buffer/window/frame of this Emacs. > - I switch to an xterm by clicking on its window. > - I switch back to Emacs by mouse-1 clicking inside its window. > > Is that going to correctly "ignore" this last mouse-1 click other than make > it change focus) because, from Emacs's point of view, the window Foo has > always been and still is the selected window? It depends on whether you have set x-mouse-click-focus-ignore-position (on systems which support it). -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-22 13:41 ` Stefan Monnier 2005-02-22 14:24 ` Kim F. Storm @ 2005-02-22 14:25 ` Kim F. Storm 1 sibling, 0 replies; 67+ messages in thread From: Kim F. Storm @ 2005-02-22 14:25 UTC (permalink / raw) Cc: Drew Adams, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: > Is that going to correctly "ignore" this last mouse-1 click other than make > it change focus) because, from Emacs's point of view, the window Foo has > always been and still is the selected window? In any case, you can always use a "long click" or drag the mouse to avoid following the link... -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 67+ messages in thread
* RE: follow-link in grep buffer 2005-02-22 9:48 ` Kim F. Storm 2005-02-22 13:41 ` Stefan Monnier @ 2005-02-22 17:33 ` Drew Adams 1 sibling, 0 replies; 67+ messages in thread From: Drew Adams @ 2005-02-22 17:33 UTC (permalink / raw) Cc: emacs-devel I just installed a change so that a mouse-1 click only follows a link if the window is already selected. The tooltip will now say to use mouse-2 to follow a link in a non-selected window and to use mouse-1 in a selected window. I don't think it's a good idea to put the info about mouse-2 in the tooltip here; I would leave it out, to simplify the explanation. Using mouse-2 to select a link in a non-selected window is not necessary, anyway - users can just click mouse-1 to select the window first. Keeping this extra info in the tooltip will only confuse novices (and others). Users quickly get used to the Windows behavior without any explanation that their first click in a non-selected window does not follow a clicked link. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 22:48 ` Nick Roberts 2005-02-22 0:08 ` Drew Adams @ 2005-02-22 0:48 ` Jason Rumney 1 sibling, 0 replies; 67+ messages in thread From: Jason Rumney @ 2005-02-22 0:48 UTC (permalink / raw) Cc: Stefan Monnier, emacs-devel Nick Roberts <nickrob@snap.net.nz> writes: > Given that if you press the button longer it also doesn't follow the > link, the tooltip tells you that it does, even without focus, and > doesn't mention that mouse-2 does the job too (it's masked by > mouse-1), I think it would only create further confusion. Relying on tooltips to tell the user important information like this is what causes confusion. I've never noticed this, probably I don't leave the mouse over the clickable link long enough for a tooltip to pop-up, because I am not expecting to need to know more information. ^ permalink raw reply [flat|nested] 67+ messages in thread
* RE: follow-link in grep buffer 2005-02-21 21:08 follow-link in grep buffer Nick Roberts 2005-02-21 21:19 ` Stefan Monnier @ 2005-02-21 21:45 ` Drew Adams 2005-02-21 22:20 ` Luc Teirlinck 2005-02-21 21:45 ` Lennart Borgman ` (2 subsequent siblings) 4 siblings, 1 reply; 67+ messages in thread From: Drew Adams @ 2005-02-21 21:45 UTC (permalink / raw) I realise that applications like web browsers use mouse-1 to follow links, so it is a good idea for Emacs to provide some consistency and it works well with Info pages. However, I am not sure if it is always appropriate as Emacs users understand that mouse-1 just generally moves the cursor, while mouse-2 might jump to another buffer. The grep buffer is an example. If I try to place the cursor anywhere on a line before the end of a match, the associated file pops up in another buffer. However I might just want to select that window to resize it. I could select the window by clicking on the modeline but if I click on the wrong part I get a different buffer. All this functionality must be daunting for the new user, so I suggest the following: 1) Mouse-1 is not used to follow links in the grep or compilation buffers. 2) If it has to be used for this purpose, then it only works where the match occurs (this must be easy to implement as it already has a different face) and the match is also underlined so that it looks like a link. Y'know, I knew this would come up sooner or later. I believe that the idea was to have the mouse-1 follow-links (and activate buttons) behavior be a user option. (I'm not sure what I prefer in this regard, as a user.) It's good for Emacs to act like other apps in this regard, as long as that doesn't impact functionality or cause other pbs. But you are absolutely correct that mouse-1 following links (and activating action buttons) will make it difficult to just select a buffer with the mouse, whenever that buffer is link-dense (or button-dense). One possibility that occurs to me now is to have a mouse-1 click in a window other than the selected-window act as mouse-1 does now: just set point. That is, the first mouse-1 click just sets point and selects the window; only thereafter would mouse-1 follow links. That is similar to the behavior I see in Windows, where clicking mouse-1 on a (WM) window that doesn't have the focus just shifts the focus: If you click a button (for example) in a window that doesn't have the focus, the window is selected, but the button is not activated (you must click it again, after the window has the focus, for it to take effect). This would not completely solve the problem you raise: You could not use mouse-1 to move point to a different part of the same, focused window. But the time-delay approach that was proposed a few months ago (by Kim?) would presumably address that pb. I think the idea there is that if you want to set point with mouse-1, then you just hold mouse-1 pressed longer than some (user-settable?) time limit, before releasing it. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 21:45 ` Drew Adams @ 2005-02-21 22:20 ` Luc Teirlinck 2005-02-21 22:36 ` Nick Roberts ` (2 more replies) 0 siblings, 3 replies; 67+ messages in thread From: Luc Teirlinck @ 2005-02-21 22:20 UTC (permalink / raw) Cc: nickrob, emacs-devel Drew Adams wrote: I believe that the idea was to have the mouse-1 follow-links (and activate buttons) behavior be a user option. You mean `mouse-1-click-follows-link'? It _is_ a user option. I personally have it set to nil. But the default value uses the new behavior. Sincerely, Luc. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 22:20 ` Luc Teirlinck @ 2005-02-21 22:36 ` Nick Roberts 2005-02-21 22:46 ` David Kastrup 2005-02-21 23:06 ` Drew Adams 2 siblings, 0 replies; 67+ messages in thread From: Nick Roberts @ 2005-02-21 22:36 UTC (permalink / raw) Cc: drew.adams, emacs-devel > I believe that the idea was to have the mouse-1 follow-links (and activate > buttons) behavior be a user option. > > You mean `mouse-1-click-follows-link'? It _is_ a user option. I > personally have it set to nil. But the default value uses the new > behavior. But I like it in Info. I'm just suggesting that it should be used more conservatively. Nick ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 22:20 ` Luc Teirlinck 2005-02-21 22:36 ` Nick Roberts @ 2005-02-21 22:46 ` David Kastrup 2005-02-21 23:00 ` Luc Teirlinck ` (3 more replies) 2005-02-21 23:06 ` Drew Adams 2 siblings, 4 replies; 67+ messages in thread From: David Kastrup @ 2005-02-21 22:46 UTC (permalink / raw) Cc: nickrob, drew.adams, emacs-devel Luc Teirlinck <teirllm@dms.auburn.edu> writes: > Drew Adams wrote: > > I believe that the idea was to have the mouse-1 follow-links (and activate > buttons) behavior be a user option. > > You mean `mouse-1-click-follows-link'? It _is_ a user option. I > personally have it set to nil. But the default value uses the new > behavior. I forgot: when we discussed the possible desirable behaviors, was follow-link-on-double-click among it? Isn't that sort of common for launching something? It would of course shadow marking a word in a link, but I guess that is less tragic than losing the obvious way of setting point? -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 22:46 ` David Kastrup @ 2005-02-21 23:00 ` Luc Teirlinck 2005-02-21 23:05 ` Luc Teirlinck ` (2 subsequent siblings) 3 siblings, 0 replies; 67+ messages in thread From: Luc Teirlinck @ 2005-02-21 23:00 UTC (permalink / raw) Cc: nickrob, drew.adams, emacs-devel David Kastrup wrote: I forgot: when we discussed the possible desirable behaviors, was follow-link-on-double-click among it? I believe that setting the option to nil does that. Sincerely, Luc. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 22:46 ` David Kastrup 2005-02-21 23:00 ` Luc Teirlinck @ 2005-02-21 23:05 ` Luc Teirlinck 2005-02-21 23:42 ` David Kastrup 2005-02-21 23:07 ` Luc Teirlinck 2005-02-22 0:44 ` Jason Rumney 3 siblings, 1 reply; 67+ messages in thread From: Luc Teirlinck @ 2005-02-21 23:05 UTC (permalink / raw) Cc: nickrob, drew.adams, emacs-devel I forgot: when we discussed the possible desirable behaviors, was follow-link-on-double-click among it? Sorry, in my previous reply I misread `double-click' for mouse-2. But yes there is such a value. You have to set it to 'double. Sincerely, Luc. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 23:05 ` Luc Teirlinck @ 2005-02-21 23:42 ` David Kastrup 2005-02-22 0:00 ` Drew Adams 0 siblings, 1 reply; 67+ messages in thread From: David Kastrup @ 2005-02-21 23:42 UTC (permalink / raw) Cc: nickrob, drew.adams, emacs-devel Luc Teirlinck <teirllm@dms.auburn.edu> writes: > I forgot: when we discussed the possible desirable behaviors, was > follow-link-on-double-click among it? > > Sorry, in my previous reply I misread `double-click' for mouse-2. > But yes there is such a value. You have to set it to 'double. Actually, I was not talking about _configurable_ behaviors (though it is nice to know that it is configurable) but about the possibly best default setting. This "double click to launch" used to be a pretty common idiom at one time, though browsers have watered it down in some contexts. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 67+ messages in thread
* RE: follow-link in grep buffer 2005-02-21 23:42 ` David Kastrup @ 2005-02-22 0:00 ` Drew Adams 0 siblings, 0 replies; 67+ messages in thread From: Drew Adams @ 2005-02-22 0:00 UTC (permalink / raw) This "double click to launch" used to be a pretty common idiom at one time, though browsers have watered it down in some contexts. FWIW - I'm not an expert on this, but I believe that in Windows the single- vs double-click-follows/activates behavior is a user option. I would guess (but don't know) that most Windows users now use the single-click behavior. I don't know if following links and other actions (e.g. open) follow the same principle (option value). Perhaps someone else can speak to this more authoritatively. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 22:46 ` David Kastrup 2005-02-21 23:00 ` Luc Teirlinck 2005-02-21 23:05 ` Luc Teirlinck @ 2005-02-21 23:07 ` Luc Teirlinck 2005-02-22 0:44 ` Jason Rumney 3 siblings, 0 replies; 67+ messages in thread From: Luc Teirlinck @ 2005-02-21 23:07 UTC (permalink / raw) Cc: nickrob, drew.adams, emacs-devel David Kastrup wrote: I forgot: when we discussed the possible desirable behaviors, was follow-link-on-double-click among it? I believe that setting the option to nil does that. That was, as I already said, the result of misreading `double-click' for mouse-2. If you set it to nil, you have to use mouse-2 to follow links. Sincerely, Luc. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 22:46 ` David Kastrup ` (2 preceding siblings ...) 2005-02-21 23:07 ` Luc Teirlinck @ 2005-02-22 0:44 ` Jason Rumney 2005-02-22 1:26 ` David Kastrup 3 siblings, 1 reply; 67+ messages in thread From: Jason Rumney @ 2005-02-22 0:44 UTC (permalink / raw) Cc: nickrob, Luc Teirlinck, drew.adams, emacs-devel David Kastrup <dak@gnu.org> writes: > I forgot: when we discussed the possible desirable behaviors, was > follow-link-on-double-click among it? Isn't that sort of common for > launching something? It would of course shadow marking a word in a > link, but I guess that is less tragic than losing the obvious way of > setting point? Except for links in info pages, which are clearly like HTML links, thus users probably expect them to be followed by a single click, I think making double click the default would be preferable, maybe with mouse-2 as an alternative for users used to the old way. I find the current default problematic in grep/compile buffers and Gnus Group and Summary windows, since I often use the mouse to switch windows, but clicking in those buffers (which are entirely made up of clickable text) does more than just position the cursor now. Equivalent windows to the compile window in other IDEs tend to use a double click. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-22 0:44 ` Jason Rumney @ 2005-02-22 1:26 ` David Kastrup 0 siblings, 0 replies; 67+ messages in thread From: David Kastrup @ 2005-02-22 1:26 UTC (permalink / raw) Cc: nickrob, Luc Teirlinck, drew.adams, emacs-devel Jason Rumney <jasonr@gnu.org> writes: > David Kastrup <dak@gnu.org> writes: > >> I forgot: when we discussed the possible desirable behaviors, was >> follow-link-on-double-click among it? Isn't that sort of common >> for launching something? It would of course shadow marking a word >> in a link, but I guess that is less tragic than losing the obvious >> way of setting point? > > Except for links in info pages, which are clearly like HTML links, > thus users probably expect them to be followed by a single click, I > think making double click the default would be preferable, maybe > with mouse-2 as an alternative for users used to the old way. > > I find the current default problematic in grep/compile buffers and > Gnus Group and Summary windows, since I often use the mouse to > switch windows, but clicking in those buffers (which are entirely > made up of clickable text) does more than just position the cursor > now. With the current scheme IIRC, links had to be marked explicitly as such to get the new behavior, to be on the safe side. But I do think that interpreting the mouse-double-click-event in the case that a mouse-2 event is defined at a "more local" keymap could be reasonably done unambigously. One example I brought up was the images from preview-latex which are also text editing entities you want to be able to move to with a single click. So it would not be a good idea to give them the link property under the current scheme. However, double-clicking on it, as the equivalent of its current mouse-2 binding, would quite naturally open and close the preview. And a double click is by far more accessible on many mouses or trackpads than a mouse-2 (which might entail pressing a slippery wheel or chording two buttons). I think it could be justified to do this remapping in general as long as there is no explicit double-click binding. > Equivalent windows to the compile window in other IDEs tend to use a > double click. This behavior basically would mean that we would remove the "link" property from most packages where it has been introduced now, keeping it just for really HTML-feeling links like in Info, and for explicit buttons (like those in Customize): one does not expect to need to double-click buttons. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 67+ messages in thread
* RE: follow-link in grep buffer 2005-02-21 22:20 ` Luc Teirlinck 2005-02-21 22:36 ` Nick Roberts 2005-02-21 22:46 ` David Kastrup @ 2005-02-21 23:06 ` Drew Adams 2 siblings, 0 replies; 67+ messages in thread From: Drew Adams @ 2005-02-21 23:06 UTC (permalink / raw) I believe that the idea was to have the mouse-1 follow-links (and activate buttons) behavior be a user option. You mean `mouse-1-click-follows-link'? It _is_ a user option. I personally have it set to nil. But the default value uses the new behavior. Yes, that's what I meant. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 21:08 follow-link in grep buffer Nick Roberts 2005-02-21 21:19 ` Stefan Monnier 2005-02-21 21:45 ` Drew Adams @ 2005-02-21 21:45 ` Lennart Borgman 2005-02-21 21:46 ` David Kastrup 2005-02-22 18:11 ` Richard Stallman 4 siblings, 0 replies; 67+ messages in thread From: Lennart Borgman @ 2005-02-21 21:45 UTC (permalink / raw) ----- Original Message ----- From: "Nick Roberts" <nickrob@snap.net.nz> > I realise that applications like web browsers use mouse-1 to follow links, so ... > be daunting for the new user, so I suggest the following: > > 1) Mouse-1 is not used to follow links in the grep or compilation buffers. > > 2) If it has to be used for this purpose, then it only works where the match > occurs (this must be easy to implement as it already has a different face) > and the match is also underlined so that it looks like a link. Alternative 2 seems more consistent (and therefore less confusing) to me. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 21:08 follow-link in grep buffer Nick Roberts ` (2 preceding siblings ...) 2005-02-21 21:45 ` Lennart Borgman @ 2005-02-21 21:46 ` David Kastrup 2005-02-21 22:46 ` Kim F. Storm 2005-02-22 18:11 ` Richard Stallman 4 siblings, 1 reply; 67+ messages in thread From: David Kastrup @ 2005-02-21 21:46 UTC (permalink / raw) Cc: emacs-devel Nick Roberts <nickrob@snap.net.nz> writes: > I realise that applications like web browsers use mouse-1 to follow > links, so it is a good idea for Emacs to provide some consistency > and it works well with Info pages. However, I am not sure if it is > always appropriate as Emacs users understand that mouse-1 just > generally moves the cursor, while mouse-2 might jump to another > buffer. The grep buffer is an example. If I try to place the cursor > anywhere on a line before the end of a match, the associated file > pops up in another buffer. Press the button for longer. That avoids following the link. How to teach this best is a different question. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 21:46 ` David Kastrup @ 2005-02-21 22:46 ` Kim F. Storm 2005-02-21 23:22 ` Luc Teirlinck 0 siblings, 1 reply; 67+ messages in thread From: Kim F. Storm @ 2005-02-21 22:46 UTC (permalink / raw) Cc: Nick Roberts, emacs-devel David Kastrup <dak@gnu.org> writes: > Press the button for longer. That avoids following the link. How to > teach this best is a different question. View at it like this: Press the mouse button "harder" (i.e. longer) to make it stick where you click. Here's the relevant doc string: mouse-1-click-follows-link's value is 300 Non-nil means that clicking Mouse-1 on a link follows the link. With the default setting, an ordinary Mouse-1 click on a link performs the same action as Mouse-2 on that link, while a longer Mouse-1 click (hold down the Mouse-1 button for more than 350 milliseconds) performs the original Mouse-1 binding (which typically sets point where you click the mouse). If value is an integer, the time elapsed between pressing and releasing the mouse button determines whether to follow the link or perform the normal Mouse-1 action (typically set point). The absolute numeric value specifices the maximum duration of a "short click" in milliseconds. A positive value means that a short click follows the link, and a longer click performs the normal action. A negative value gives the opposite behaviour. If value is `double', a double click follows the link. Otherwise, a single Mouse-1 click unconditionally follows the link. Note that dragging the mouse never follows the link. This feature only works in modes that specifically identify clickable text as links, so it may not work with some external packages. See `mouse-on-link-p' for details. -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 22:46 ` Kim F. Storm @ 2005-02-21 23:22 ` Luc Teirlinck 0 siblings, 0 replies; 67+ messages in thread From: Luc Teirlinck @ 2005-02-21 23:22 UTC (permalink / raw) Cc: nickrob, emacs-devel If value is an integer,... If value is `double', a double click follows the link. Otherwise, a single Mouse-1 click unconditionally follows the link. Would "For any other non-nil value," not be clearer than "Otherwise," which seems to include _all_ other possibilities, including nil. Sincerely, Luc. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-21 21:08 follow-link in grep buffer Nick Roberts ` (3 preceding siblings ...) 2005-02-21 21:46 ` David Kastrup @ 2005-02-22 18:11 ` Richard Stallman 2005-02-25 6:51 ` Nick Roberts 4 siblings, 1 reply; 67+ messages in thread From: Richard Stallman @ 2005-02-22 18:11 UTC (permalink / raw) Cc: emacs-devel The grep buffer is an example. If I try to place the cursor anywhere on a line before the end of a match, the associated file pops up in another buffer. However I might just want to select that window to resize it. When you found this not to your taste, were you aware about the aspect that Mouse-1 does not follow links if you move the mouse at all? Is that method of avoiding the problem adequate? Stefan wrote: Based on your example, I'd say another option might be: - if the click is used to give focus, then don't follow the link. I would not object to that, if the other developers find it convenient, and assuming that "move the mouse" is not an adequate solution for your problem. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-22 18:11 ` Richard Stallman @ 2005-02-25 6:51 ` Nick Roberts 2005-02-25 9:46 ` David Kastrup 2005-02-25 22:52 ` Richard Stallman 0 siblings, 2 replies; 67+ messages in thread From: Nick Roberts @ 2005-02-25 6:51 UTC (permalink / raw) Cc: emacs-devel > The grep buffer is an example. If I try to place the cursor anywhere on > a line before the end of a match, the associated file pops up in > another buffer. However I might just want to select that window to > resize it. > > When you found this not to your taste, were you aware about the aspect > that Mouse-1 does not follow links if you move the mouse at all? No. I wasn't aware of that. With the default setting, the user would have to move the mouse and release it within 350 milliseconds for it to have any effect. I think must be quite hard to do. > Is that method of avoiding the problem adequate? My preferences remained unchanged but I also think it must be confusing for a novice user. Before I was aware of the time limit, I didn't understand why clicking mouse-1 sometimes popped to a new buffer and other times didn't. Nick ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 6:51 ` Nick Roberts @ 2005-02-25 9:46 ` David Kastrup 2005-02-25 11:12 ` Kim F. Storm 2005-02-25 22:53 ` Richard Stallman 2005-02-25 22:52 ` Richard Stallman 1 sibling, 2 replies; 67+ messages in thread From: David Kastrup @ 2005-02-25 9:46 UTC (permalink / raw) Cc: rms, emacs-devel Nick Roberts <nickrob@snap.net.nz> writes: > > The grep buffer is an example. If I try to place the cursor anywhere on > > a line before the end of a match, the associated file pops up in > > another buffer. However I might just want to select that window to > > resize it. > > > > When you found this not to your taste, were you aware about the aspect > > that Mouse-1 does not follow links if you move the mouse at all? > > No. I wasn't aware of that. With the default setting, the user would have to > move the mouse and release it within 350 milliseconds for it to have any > effect. I think must be quite hard to do. > > > Is that method of avoiding the problem adequate? > > My preferences remained unchanged but I also think it must be > confusing for a novice user. Before I was aware of the time limit, I > didn't understand why clicking mouse-1 sometimes popped to a new > buffer and other times didn't. I am afraid that the same is the case here. I have focus-follows-mouse set here by default in the window manager, so I don't expect clicks that don't do anything. The current behavior (where a window change does not follow links at all) is more confusing than the previous one. Kim, I am aware that you hate double clicks. However, for the I-hate-something proponents there is always the possibility of using customize to change the default. In order not to confuse people too much, I really would want to suggest strongly that we remap double-click to mouse-2 unconditionally by default (where a "stronger" mouse-2 binding exists), and also map mouse-1 to the same when the special "link" property is present. This property would only be present in clearly "clickable" situations such as buttons or Info references, but not where there is basically normal text with clickable properties (like in a grep buffer or in the headers of gnus buffers). A double click can never be confused with a "click just to shift point/focus". It is conveniently available on even single-key mouses and its behavior does not need 5 sentences to explain. The confusion potential is just with mark-word, and that is tolerable in clickable situations. The current scheme also steals the potential to double-click, anyway, since the first short click already follows the link, and a double-click by click and hold long, then leave the button very short and click again, this time short... that's not something you manage if you are not a piano player, anyway. It's nice if everything else we have tried out is available as a customizable option, but by default, I think we should remap only the double click when not asked for, and the normal single click (of _any_ duration) when asked for. Secret timing differences and stuff like that are much too subtle _unless_ the user configured them himself, in which case he'd know about them. That is the default behavior of most applications, and I don't see that the alternatives we have tried so far would be so much better as to warrant getting people used to them instead. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 9:46 ` David Kastrup @ 2005-02-25 11:12 ` Kim F. Storm 2005-02-25 12:55 ` Stefan Monnier 2005-02-25 23:35 ` Kim F. Storm 2005-02-25 22:53 ` Richard Stallman 1 sibling, 2 replies; 67+ messages in thread From: Kim F. Storm @ 2005-02-25 11:12 UTC (permalink / raw) Cc: Nick Roberts, rms, emacs-devel David Kastrup <dak@gnu.org> writes: >> My preferences remained unchanged but I also think it must be >> confusing for a novice user. Before I was aware of the time limit, I >> didn't understand why clicking mouse-1 sometimes popped to a new >> buffer and other times didn't. > > I am afraid that the same is the case here. I have > focus-follows-mouse set here by default in the window manager, so I > don't expect clicks that don't do anything. The current behavior > (where a window change does not follow links at all) is more confusing > than the previous one. This really hasn't anything to do with focus-follows-mouse. What if you set mouse-autoselect-window ? In any case, I agree that last modification isn't perfect, and I'll think about what to do. > > Kim, I am aware that you hate double clicks. However, for the > I-hate-something proponents there is always the possibility of using > customize to change the default. > > In order not to confuse people too much, I really would want to > suggest strongly that we remap double-click to mouse-2 unconditionally > by default (where a "stronger" mouse-2 binding exists), and also map > mouse-1 to the same when the special "link" property is present. This > property would only be present in clearly "clickable" situations such > as buttons or Info references, but not where there is basically normal > text with clickable properties (like in a grep buffer or in the > headers of gnus buffers). IMO, this has nothing to do with the default of mouse-1-click-follows-link. It is a problem of those modes which basically make large parts of a buffer mouse-2 click-able and then uses a too primitive form of the `follow-link' functionality. So grep and gnus should not just say that mouse-1 blindly maps to mouse-2. > The current scheme also steals the potential to double-click, anyway, > since the first short click already follows the link, and a > double-click by click and hold long, then leave the button very short > and click again, this time short... that's not something you manage > if you are not a piano player, anyway. If so, it is a bug. The code specifically tests to see if there is a second click within double-click-time and generates a double click rather than two separate clicks. > > It's nice if everything else we have tried out is available as a > customizable option, but by default, I think we should remap only the > double click when not asked for, and the normal single click (of _any_ > duration) when asked for. So change grep and gnus... -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 11:12 ` Kim F. Storm @ 2005-02-25 12:55 ` Stefan Monnier 2005-02-25 13:25 ` Lennart Borgman 2005-02-25 13:37 ` Kim F. Storm 2005-02-25 23:35 ` Kim F. Storm 1 sibling, 2 replies; 67+ messages in thread From: Stefan Monnier @ 2005-02-25 12:55 UTC (permalink / raw) Cc: Nick Roberts, rms, emacs-devel I vote to change mouse-1-click-follows-link to `double'. Stefan ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 12:55 ` Stefan Monnier @ 2005-02-25 13:25 ` Lennart Borgman 2005-02-25 13:40 ` Kim F. Storm 2005-02-25 14:20 ` Andreas Schwab 2005-02-25 13:37 ` Kim F. Storm 1 sibling, 2 replies; 67+ messages in thread From: Lennart Borgman @ 2005-02-25 13:25 UTC (permalink / raw) Cc: Nick Roberts, rms, emacs-devel ----- Original Message ----- From: "Stefan Monnier" <monnier@iro.umontreal.ca> > I vote to change mouse-1-click-follows-link to `double'. >From a usability point I do not like double-clicks. If most links are single click links (and they are in a web browser) I think we should as far as possible use single-clicks for links. I like Drews suggestion that the first click gives focus only. A problem with this is however that (at least on w32) Emacs is not very consistent and fast on showing an hourglass when working and that may be confusing. Another problem if Drews suggestion is used is perhaps if the first click should give focus only when the frame does not have focus or when the window does not have focus. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 13:25 ` Lennart Borgman @ 2005-02-25 13:40 ` Kim F. Storm 2005-02-25 14:20 ` Andreas Schwab 1 sibling, 0 replies; 67+ messages in thread From: Kim F. Storm @ 2005-02-25 13:40 UTC (permalink / raw) Cc: Nick Roberts, emacs-devel, Stefan Monnier, rms "Lennart Borgman" <lennart.borgman.073@student.lu.se> writes: > ----- Original Message ----- > From: "Stefan Monnier" <monnier@iro.umontreal.ca> > >> I vote to change mouse-1-click-follows-link to `double'. > >>From a usability point I do not like double-clicks. If most links are single > click links (and they are in a web browser) I think we should as far as > possible use single-clicks for links. > > I like Drews suggestion that the first click gives focus only. A problem > with this is however that (at least on w32) Emacs is not very consistent and > fast on showing an hourglass when working and that may be confusing. In X, we have this: x-mouse-click-focus-ignore-position's value is t Non-nil means that a mouse click to focus a frame does not move point. This variable is only used when the window manager requires that you click on a frame to select it (give it focus). In that case, a value of nil, means that the selected window and cursor position changes to reflect the mouse click position, while a non-nil value means that the selected window or cursor position is preserved. I suppose a similar thing could be implemented in other ports, but I'm don't know how to do that. -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 13:25 ` Lennart Borgman 2005-02-25 13:40 ` Kim F. Storm @ 2005-02-25 14:20 ` Andreas Schwab 1 sibling, 0 replies; 67+ messages in thread From: Andreas Schwab @ 2005-02-25 14:20 UTC (permalink / raw) Cc: Nick Roberts, emacs-devel, Stefan Monnier, rms, Kim F. Storm "Lennart Borgman" <lennart.borgman.073@student.lu.se> writes: > ----- Original Message ----- > From: "Stefan Monnier" <monnier@iro.umontreal.ca> > >> I vote to change mouse-1-click-follows-link to `double'. > >>From a usability point I do not like double-clicks. If most links are single > click links (and they are in a web browser) I think we should as far as > possible use single-clicks for links. But Emacs is not a browser, but an editor, the the most common operation in an editor for a single click is to set point, not to follow links. > I like Drews suggestion that the first click gives focus only. I never have to click to focus. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 12:55 ` Stefan Monnier 2005-02-25 13:25 ` Lennart Borgman @ 2005-02-25 13:37 ` Kim F. Storm 2005-02-25 14:10 ` David Kastrup ` (2 more replies) 1 sibling, 3 replies; 67+ messages in thread From: Kim F. Storm @ 2005-02-25 13:37 UTC (permalink / raw) Cc: Nick Roberts, rms, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: > I vote to change mouse-1-click-follows-link to `double'. The whole point of mouse-1-click-follows-link is to make emacs behave like most other (modern) applications. Double click to follow a link is not modern! If we have specific problems in certain modes, let's fix those modes (e.g. in grep that you have to click on the file:line part of a line to jump). -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 13:37 ` Kim F. Storm @ 2005-02-25 14:10 ` David Kastrup 2005-02-26 13:53 ` Reiner Steib 2005-02-27 0:32 ` Richard Stallman 2005-02-25 16:33 ` Stefan Monnier 2005-02-25 16:37 ` Drew Adams 2 siblings, 2 replies; 67+ messages in thread From: David Kastrup @ 2005-02-25 14:10 UTC (permalink / raw) Cc: Nick Roberts, emacs-devel, Stefan Monnier, rms storm@cua.dk (Kim F. Storm) writes: > Stefan Monnier <monnier@iro.umontreal.ca> writes: > >> I vote to change mouse-1-click-follows-link to `double'. > > The whole point of mouse-1-click-follows-link is to make emacs behave > like most other (modern) applications. > > Double click to follow a link is not modern! This is a misstatement of the goal. The problem we are addressing in the first place is that mouse-2 to follow anything is neither modern nor oldfashioned elsewhere, but completely uncustomary. Now the "modern" way is to follow links/buttons with a single click, and I say that we should provide for this in the manner you did: with an explicit link property enabling this redirection of the otherwise mouse-2 behavior. However, for following "easter eggs", namely causing an action where an action is not usual, like in editing buffers, double clicks are still quite common. For those, I would recommend _not_ to set a link property, but _still_ redirect a double-click to the mouse-2 behavior, in a similar manner to what your first proposal was. I would recommend not making any behavior by default dependent on the single-click length, nor on the focus situation: both approaches are completely obfuscate and confusing. So the change to 21.4 behavior would be the following: a) a double-click on a location that has no double-click binding, but a local mouse-2 binding, will execute the mouse-2 binding. This will make double-clicks, where not overriden, follow links without further code changes compared to 21.4 b) setting an explicit link property will _additionally_ remap mouse-1 to mouse-2. I would not by default make this dependent on anything else. It is obvious from this description that making a larger text area have an explicit link property would be a mistake, as you would then get into difficulties positioning the cursor. As long as only short buttons and links are concerned, it is tolerably easy and logical to click before or after the button/link, and then move into it. The possibility of a small drag remains for the experienced user. So grep should not set the link property in my opinion in this scheme, and gnus should set it sparingly: on MIME buttons it generates itself, but not on header lines or things looking like a link in the article text. > If we have specific problems in certain modes, let's fix those modes > (e.g. in grep that you have to click on the file:line part of a line > to jump). That again requires cleverness. I don't mind if we have customization options for this sort of thing, but it is a mistake for the default. I have a demonstration and workshop for Emacs coming up in the next two weeks, where I want to tell people to use Emacs for their serious editing needs. Telling them "use mouse-2" has always been sort of embarrassing. Telling them "use mouse-1, but don't press it longer than 200 milliseconds if you want to follow the link, and it won't work if you have not the focus" will kill the "Emacs is usable for common human" proposition dead. Telling people "double click to follow some possible cross connection" will make them feel at home. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 14:10 ` David Kastrup @ 2005-02-26 13:53 ` Reiner Steib 2005-02-27 0:32 ` Richard Stallman 1 sibling, 0 replies; 67+ messages in thread From: Reiner Steib @ 2005-02-26 13:53 UTC (permalink / raw) On Fri, Feb 25 2005, David Kastrup wrote: > I would recommend not making any behavior by default dependent on the > single-click length, nor on the focus situation: both approaches are > completely obfuscate and confusing. > > So the change to 21.4 behavior would be the following: > > a) a double-click on a location that has no double-click binding, but > a local mouse-2 binding, will execute the mouse-2 binding. This > will make double-clicks, where not overriden, follow links without > further code changes compared to 21.4 > b) setting an explicit link property will _additionally_ remap mouse-1 > to mouse-2. I would not by default make this dependent on anything > else. I agree with David's arguments and his suggestions. I also find the current behavior confusing in some modes. After several week, I still sometimes follow the link when I intended to select the window or set the point. Some examples: In Gnus Group buffer, I often want to put the cursor on a certain group and then I intend to do `C-u a' (post to group under point), `10 RET' (show 10 article in that group), M-g (Check for new news in the current topic.). In PCL-CVS, I often want to put the point on a file name and then do `=' (cvs-mode-diff), `l' (cvs-mode-log) ... Because I followed the discussions on emacs-devel, I remembered why mouse-1 behaves like this, but I think for ordinary users it is really surprising. In modes like info, mouse-1 to follow a link is a good default. > So grep should not set the link property in my opinion in this scheme, > and gnus should set it sparingly: on MIME buttons it generates itself, > but not on header lines or things looking like a link in the article > text. It should not be set (by default) in the group and summary buffer. As for the MIME buttons and other links in the article buffer: AFAICS, these are the same kind of all "buttons", so it might require some work. [...] > Telling them "use mouse-2" has always been sort of embarrassing. > Telling them "use mouse-1, but don't press it longer than 200 > milliseconds if you want to follow the link, and it won't work if you > have not the focus" will kill the "Emacs is usable for common human" > proposition dead. ACK. In Gnus group buffer, I often found myself clicking too short so that the key presses intended for the group buffer were executed in the summary buffer and thus triggered completely different actions. > Telling people "double click to follow some possible cross > connection" will make them feel at home. Bye, Reiner. -- ,,, (o o) ---ooO-(_)-Ooo--- | PGP key available | http://rsteib.home.pages.de/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 14:10 ` David Kastrup 2005-02-26 13:53 ` Reiner Steib @ 2005-02-27 0:32 ` Richard Stallman 1 sibling, 0 replies; 67+ messages in thread From: Richard Stallman @ 2005-02-27 0:32 UTC (permalink / raw) Cc: nickrob, emacs-devel, monnier, storm a) a double-click on a location that has no double-click binding, but a local mouse-2 binding, will execute the mouse-2 binding. This will make double-clicks, where not overriden, follow links without further code changes compared to 21.4 This means two different modes of operation where at present we have just one. A priori, that is undesirable. It would have to be quite clear that users would like this better and find it more natural. By the way, I see that double-mouse-1 does not work on clickable links. The reason seems to be that a long click followed immediately by a short one do not combine as a double click--regardless of the text. Is that correct behavior? ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 13:37 ` Kim F. Storm 2005-02-25 14:10 ` David Kastrup @ 2005-02-25 16:33 ` Stefan Monnier 2005-02-25 16:47 ` David Kastrup 2005-02-25 16:37 ` Drew Adams 2 siblings, 1 reply; 67+ messages in thread From: Stefan Monnier @ 2005-02-25 16:33 UTC (permalink / raw) Cc: Nick Roberts, rms, emacs-devel > If we have specific problems in certain modes, let's fix those > modes (e.g. in grep that you have to click on the file:line > part of a line to jump). AFAICT the specific problem at hand is that a mous-1 click used to get focus should not follow a link. No matter what kind of link, no matter the major mode. I think x-mouse-click-focus-ignore-position is pretty much the kind of thing we want, although I'd have expected that the window-manager would take care of those things (it should eat the "click-to-focus" and not pass it on to the application). But if such a thing is not possible a double-click sounds like the next best thing. Stefan ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 16:33 ` Stefan Monnier @ 2005-02-25 16:47 ` David Kastrup 2005-02-25 16:59 ` Stefan Monnier 2005-02-25 23:05 ` Lennart Borgman 0 siblings, 2 replies; 67+ messages in thread From: David Kastrup @ 2005-02-25 16:47 UTC (permalink / raw) Cc: Nick Roberts, emacs-devel, rms, Kim F. Storm Stefan Monnier <monnier@iro.umontreal.ca> writes: >> If we have specific problems in certain modes, let's fix those >> modes (e.g. in grep that you have to click on the file:line >> part of a line to jump). > > AFAICT the specific problem at hand is that a mous-1 click used to > get focus should not follow a link. No matter what kind of link, no > matter the major mode. That's not the only problem. A mouse-1 click not used to get focus should follow a link. If it doesn't, that is surprising. Now click-to-focus is strictly a windowmanager and frame thingy. While one also uses the mouse for the purpose of changing the _window_ instead of the frame, one would be terribly surprised if this had not the side effect of setting point, too. Basically, one sets point into a different window since that is the convenient way to change focus. It is completely backwards if this side effect of a window change leads to a link working or not working, namely if we _do_ set point, but _don't_ follow the link. With a true click-to-focus, we should not even have the window-point change, merely the selected window. All those semantics are far too clever. It is an absolutely horrifying thought to have to explain this to a bunch of beginners with Emacs. They'll just declare me crazy and be done. > I think x-mouse-click-focus-ignore-position is pretty much the kind > of thing we want, although I'd have expected that the window-manager > would take care of those things (it should eat the "click-to-focus" > and not pass it on to the application). You are confusing frame and window. Changing the selected window is also necessary at times. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 16:47 ` David Kastrup @ 2005-02-25 16:59 ` Stefan Monnier 2005-02-25 23:05 ` Lennart Borgman 1 sibling, 0 replies; 67+ messages in thread From: Stefan Monnier @ 2005-02-25 16:59 UTC (permalink / raw) Cc: Nick Roberts, emacs-devel, rms, Kim F. Storm >>> If we have specific problems in certain modes, let's fix those >>> modes (e.g. in grep that you have to click on the file:line >>> part of a line to jump). >> >> AFAICT the specific problem at hand is that a mous-1 click used to >> get focus should not follow a link. No matter what kind of link, no >> matter the major mode. > That's not the only problem. A mouse-1 click not used to get focus > should follow a link. If it doesn't, that is surprising. Now > click-to-focus is strictly a windowmanager and frame thingy. While > one also uses the mouse for the purpose of changing the _window_ > instead of the frame, one would be terribly surprised if this had not > the side effect of setting point, too. Basically, one sets point into > a different window since that is the convenient way to change focus. > It is completely backwards if this side effect of a window change > leads to a link working or not working, namely if we _do_ set point, > but _don't_ follow the link. With a true click-to-focus, we should > not even have the window-point change, merely the selected window. AFAICT, the problem at hand is about frame-focus-changes, not about window-focus-changes (Nick's message said "I might just want to select that window to resize it" suggesting pretty clearly that he's talking about frames rather than windows). >> I think x-mouse-click-focus-ignore-position is pretty much the kind >> of thing we want, although I'd have expected that the window-manager >> would take care of those things (it should eat the "click-to-focus" >> and not pass it on to the application). > You are confusing frame and window. Changing the selected window is > also necessary at times. No, I'm not confusing them, I was talking about frames (and never mentioned the word "window"), tho I didn't make it explicit since I thought the context was sufficiently clear. BTW, in a click-to-focus environment (I'm still talking only about frames's focus), I think it'd indeed also make sense (as Nick's message mentioned) to ignore a click on a sensitive mode-line element if it was used to get focus. Basically, any non-trivially-safe (point movement and window selection is safe, most of the rest isn't) operation should not be triggered by a click-to-focus. Maybe the mouse-face should also be inactive on frames that don't have focus. Stefan ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 16:47 ` David Kastrup 2005-02-25 16:59 ` Stefan Monnier @ 2005-02-25 23:05 ` Lennart Borgman 1 sibling, 0 replies; 67+ messages in thread From: Lennart Borgman @ 2005-02-25 23:05 UTC (permalink / raw) ----- Original Message ----- From: "David Kastrup" <dak@gnu.org> > > AFAICT the specific problem at hand is that a mous-1 click used to > > get focus should not follow a link. No matter what kind of link, no > > matter the major mode. > > That's not the only problem. A mouse-1 click not used to get focus > should follow a link. If it doesn't, that is surprising. Now > click-to-focus is strictly a windowmanager and frame thingy. While > one also uses the mouse for the purpose of changing the _window_ > instead of the frame, one would be terribly surprised if this had not > the side effect of setting point, too. Basically, one sets point into > a different window since that is the convenient way to change focus. I agree to this. If I sum up what I think about the current issue after reading all messages it looks something like this: 1) Try to be consistent both within Emacs and with other apps. 2) Try to give visual clues. 3) All "links" should have a common look. There is a difference here between Emacs and some other apps. An Emacs buffer is more like a web browser than for example a list style dialog. Therefore I believe the "links" should always look like the links in a web browser. (And double clicks should not be used for links since this belongs to another visual style.) 4) Note that the look of the links are very important for keyboard users too! (I happen to be one of those that seldom uses the mouse - even if I can find it...) 5) This should apply also to "mouse over" faces. 6) Since "unfocused" windows with the behaviour suggested below does not have directly clickable links the "mouse over" face should then perhaps be different. 7) A single click sets focus and point if the window does not have focus. 8) A single click follows link otherwise (if the click is on a link...) ^ permalink raw reply [flat|nested] 67+ messages in thread
* RE: follow-link in grep buffer 2005-02-25 13:37 ` Kim F. Storm 2005-02-25 14:10 ` David Kastrup 2005-02-25 16:33 ` Stefan Monnier @ 2005-02-25 16:37 ` Drew Adams 2005-02-25 18:09 ` David Kastrup 2 siblings, 1 reply; 67+ messages in thread From: Drew Adams @ 2005-02-25 16:37 UTC (permalink / raw) If we have specific problems in certain modes, let's fix those modes (e.g. in grep that you have to click on the file:line part of a line to jump). Just to add one more permutation to our list of contortions ;-) - I would like to see modes like Dired and Grep and Buffer List make the entire line, which is in fact the entire entry, clickable and mouse-highlightable, as I think I mentioned before. The reasons are: - It makes it much easier to "scan" with the mouse, seeing what lines up with what. This is like using a ruler to scan entries in a large table or phone book. - It makes it easier to click an entry - just click anywhere on the line. I've used this behavior for decades in my own Emacs, and I find it useful. Anyway, I mention this now because of Kim's suggestion, above, which moves a bit in the opposite direction. IOW, I don't want to see the hot zone _reduced_ or limited in buffers like grep, I instead want to see the entire entry (which is the entire line) become the hot zone. Assuming that I were able to convince others about this (;-)), what would that mean wrt mouse bindings? In buffers like these (Dired, grep, Buffer List), the main mouse action is not to set point, but setting point is still an important action (e.g. in Dired). I don't have a brilliant suggestion, but I wonder if it wouldn't be reasonable, in such buffers, to reverse one approach mentioned already: - mouse-1 follows the link (which, to me, should be the whole line) - double-click mouse-1 sets point I don't think this would be too bad. In such buffers we do need to set point sometimes, and we sometimes want to create a region, but we don't usually need to double-click to select a word. We could always drag to create a region (I do that in my Dired buffers). Of course, there is the argument that this won't be intuitive to users, but I think we'll be up against such an argument no matter what we choose. After all, being able to both a) follow a link and b) set point is not that common. Another argument against this might be that a too-slow double-click would mess up the user, mistakenly following the link. I think users can deal with this. In Windows, a simple GUI dialog lets you set the double-click interval (speed), and this setting applies to all applications. (BTW, Do we pick up this Windows setting in Emacs, to use as our double-click delay?) Kim's time delay is also a good approach to the mouse-1/mouse-2 problem, and it is also standard behavior in many apps (the argument that users will never discover it is overstated, IMO). There would be no problem in adopting both approaches simultaneously (to set point: either double-click or hold mouse-1 pressed a little longer). That might sound paradoxical, but it's perhaps the easiest behavior to explain (and discover): to follow a link, use a single short click; anything else sets point. Whatever we choose, we have these requirements: - It should be at least as easy to follow a link as to set point. In buffers that are primarily "view" buffers, as opposed to "edit", it is tolerable if setting point is not quite as easy as following a link. - It shouldn't be too hard to discover or perform either action. - There should not be any disastrous consequences of making a mistake. WRT having the first mouse-click set the focus (a suggestion Stefan and I each made): Yes, that would be done only if the window didn't already have the focus. No, it wouldn't apply if you choose to have the focus automatically follow the mouse. I think that first-click-focuses suggestion makes sense, regardless of what other conventions we adopt - that is, it should be adopted even if we also choose to use double-click (or whatever) to set point. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 16:37 ` Drew Adams @ 2005-02-25 18:09 ` David Kastrup 2005-02-25 19:44 ` Drew Adams 0 siblings, 1 reply; 67+ messages in thread From: David Kastrup @ 2005-02-25 18:09 UTC (permalink / raw) Cc: emacs-devel "Drew Adams" <drew.adams@oracle.com> writes: > If we have specific problems in certain modes, let's fix those > modes (e.g. in grep that you have to click on the file:line part > of a line to jump). > > Just to add one more permutation to our list of contortions ;-) - > > I would like to see modes like Dired and Grep and Buffer List make > the entire line, which is in fact the entire entry, clickable and > mouse-highlightable, as I think I mentioned before. For one thing, this is visually distracting. Our highlight color is pretty brutal. For buttons, this is fine, for active lines, this is too much. Personally, I could imagine a two-fold system: decent highlighting for non-mouse1-links (that need mouse-2 or a double click), brutal highlighting for really active areas where mouse-1 already has an effect. > The reasons are: > > - It makes it much easier to "scan" with the mouse, seeing what > lines up with what. This is like using a ruler to scan entries in a > large table or phone book. The mouse highlighting we have makes the line pretty unreadable. That is ok for buttons: you usually are aware what they are for before you move to their confined area. But it is too heavy for whole lines. > - It makes it easier to click an entry - just click anywhere on the > line. Good grief. In a dired buffer, I most often need to to some directory editing operation: renaming, moving, viewing with a special application. If there is no place in the whole buffer where a simple mouse-1 will be able to place point, this is a terrible nuisance. I am not sure I'd want to have even just the file name mouse-1-buttonized, let alone the whole line. > Anyway, I mention this now because of Kim's suggestion, above, which > moves a bit in the opposite direction. IOW, I don't want to see the > hot zone _reduced_ or limited in buffers like grep, I instead want > to see the entire entry (which is the entire line) become the hot > zone. That pretty much destroys the ability for simple editing without using smartass tricks like long clicks or drags. This is not an interface I want to have to explain to anybody. > Assuming that I were able to convince others about this (;-)), what > would that mean wrt mouse bindings? In buffers like these (Dired, > grep, Buffer List), the main mouse action is not to set point, but > setting point is still an important action (e.g. in Dired). I don't > have a brilliant suggestion, but I wonder if it wouldn't be > reasonable, in such buffers, to reverse one approach mentioned > already: > > - mouse-1 follows the link (which, to me, should be the whole line) > > - double-click mouse-1 sets point Terrible. If I tell that to any new Emacs users, they'll shake their heads and leave Emacs alone. I don't mind if you configure your own editor in such a backward way that makes the simple operations difficult, but you won't see me applauding this choice even if you managed to convinve a majority that this is not insane. > I don't think this would be too bad. I think it would be terrible. I can't explain such behavior to _any_ newbie. It is fine if you have the possibility to configure it this way, and the possibility to tell people how convenient you find it and they should try it as well, but I won't accept something so completely backward from all customary defaults with no apparent advantage without screaming all the while. Please _don't_ think in the category "what would be most convenient for me, even if by a hairline". Rather try thinking "what would be most convenient to _explain_ for me". If people ask you "Why for heaven's sake does it do that?", you should have a very convincing answer, or you are doing something wrong. Putting the scrollbar to the left in an Emacs window has a convincing answer. Left is where the bulk of the text action is in a left-to-right script. That is one example where Emacs differs from the rest of the world for a _good_ reason. I can explain that. And it is something that I would be proud to explain, showing people how Emacs developers use their brain. In contrast, with a scheme like your, I'd be ashamed to explain, and I would not have anything close to a convincing answer to "Why for heaven's sake does it do that?". And "That's just the way it does it. Take it or leave it." is not what I like to offer as an explanation. > In such buffers we do need to set point sometimes, and we sometimes > want to create a region, but we don't usually need to double-click > to select a word. Which is why double clicking anywhere on the line is perfect for following a link. > Of course, there is the argument that this won't be intuitive to > users, but I think we'll be up against such an argument no matter > what we choose. So let us choose the worst? > Another argument against this might be that a too-slow double-click > would mess up the user, mistakenly following the link. I think users > can deal with this. Sure. They'll just switch to a different editor. > In Windows, a simple GUI dialog lets you set the double-click > interval (speed), and this setting applies to all > applications. (BTW, Do we pick up this Windows setting in Emacs, to > use as our double-click delay?) If you read in the coding guidelines you'll find that a double-click action should _add_ to a single click action so that the single click action can be executed immediately, without delay or other disturbances. > - It should be at least as easy to follow a link as to set > point. For a button-like link. But not for whole lines. > In buffers that are primarily "view" buffers, as opposed to "edit", > it is tolerable if setting point is not quite as easy as following a > link. dired buffers are used for quite more than just selecting a file to view. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 67+ messages in thread
* RE: follow-link in grep buffer 2005-02-25 18:09 ` David Kastrup @ 2005-02-25 19:44 ` Drew Adams 2005-02-25 20:07 ` Stefan Monnier 2005-02-25 20:27 ` David Kastrup 0 siblings, 2 replies; 67+ messages in thread From: Drew Adams @ 2005-02-25 19:44 UTC (permalink / raw) > Just to add one more permutation to our list of contortions ;-) - > > I would like to see modes like Dired and Grep and Buffer List make > the entire line, which is in fact the entire entry, clickable and > mouse-highlightable, as I think I mentioned before. For one thing, this is visually distracting. Our highlight color is pretty brutal. For buttons, this is fine, for active lines, this is too much. For that reason, I use underline for mouse-face highlighting in such buffers. > The reasons are: > > - It makes it much easier to "scan" with the mouse, seeing what > lines up with what. This is like using a ruler to scan entries in a > large table or phone book. The mouse highlighting we have makes the line pretty unreadable. That is ok for buttons: you usually are aware what they are for before you move to their confined area. But it is too heavy for whole lines. Agreed - see above. The proper highlighting to use is our choice (and then it's the user's choice). I agree that mouseover highlighting of entire-line entries should be subtle, not overwhelming. I use underline. Ideally, I would love to be able to use underlining _without removing any font-lock highlighting_; that is, simply underline the text when you point to it, without changing any of its other properties. That's the behavior in most Web browsers. I'm not sure if that's easy to do, or even feasible, in Emacs, however. > - It makes it easier to click an entry - just click anywhere on the > line. Good grief. In a dired buffer, I most often need to to some directory editing operation: renaming, moving, viewing with a special application. If there is no place in the whole buffer where a simple mouse-1 will be able to place point, this is a terrible nuisance. I am not sure I'd want to have even just the file name mouse-1-buttonized, let alone the whole line. 1. Currently I do not have mouse-1 follow links, so I have no pb in this regard. I agree that if one cannot easily set point, that is a major problem. 2. I specifically said that in such buffers it is very important to be able to easily set point with the mouse. I said, about such buffers: "the main mouse action is not to set point, but setting point is still an important action (e.g. in Dired)." 3. Describing behavior like this doesn't communicate it well. You really need to try it (or have a good imagination). Also, it's hard to think outside of one's habitual box - that is, our habits can often convince us that any change is undesirable. > Anyway, I mention this now because of Kim's suggestion, above, which > moves a bit in the opposite direction. IOW, I don't want to see the > hot zone _reduced_ or limited in buffers like grep, I instead want > to see the entire entry (which is the entire line) become the hot > zone. That pretty much destroys the ability for simple editing without using smartass tricks like long clicks or drags. See above. I use mouse-1 to set point currently, as usual (no double-clicking). If we changed mouse-1 to follow links, then I would double-click to set point - or I would forego mouse-1-follows-links. "Simple editing" would not be affected detrimentally by what I or Kim described, and such buffers are not for non-simple editing. This is not an interface I want to have to explain to anybody. We want an interface that does _not_ need explaining - especially wrt basic mouse operations such as following links and setting point. I think this behavior would be fairly intuitive and easy to discover - no special explanation would be needed. Keep in mind, too, that Emacs novices already need to learn much trickier mouse manipulations (double-click and triple-click to select, mouse-1 plus mouse-3 to select, etc.). How did you learn all that? You probably read it in Info. Well, what I'm talking about is a lot less to explain than all that. And, more importantly, it probably would be discovered and not need explaining at all (unlike mouse-1 plus mouse-3 to select etc.). > Assuming that I were able to convince others about this (;-)), what > would that mean wrt mouse bindings? In buffers like these (Dired, > grep, Buffer List), the main mouse action is not to set point, but > setting point is still an important action (e.g. in Dired). I don't > have a brilliant suggestion, but I wonder if it wouldn't be > reasonable, in such buffers, to reverse one approach mentioned > already: > > - mouse-1 follows the link (which, to me, should be the whole line) > > - double-click mouse-1 sets point Terrible. If I tell that to any new Emacs users, they'll shake their heads and leave Emacs alone. And when you tell them about mouse-1 plus mouse-3 and all the rest? I don't mind if you configure your own editor in such a backward way that makes the simple operations difficult, I appreciate that you don't mind. but you won't see me applauding this choice even if you managed to convinve a majority that this is not insane. Please - du calme - it's just food for thought. I doubt I'll convince anyone, but that doesn't imply that I'm wrong. I've been wrong before, and I've been right before and unable to convince others - that's life. This is just a discussion; no one is shooting your grandmother. Personally, I find the full-line highlighting so useful that if forced to choose, I'll probably choose not to have mouse-1 follow links in such buffers. _I_ might not mind double-clicking to set point in such buffers, but if you barf at the thought, well, we might have different taste. > I don't think this would be too bad. I think it would be terrible. I can't explain such behavior to _any_ newbie. If we need to have you explain such things to newbies, then, yes, we're in deep doo-doo. The basics of our UI should be straightforward, discoverable, and self explanatory - so you will be able to retire from the lecture circuit ;-). ("Lesson 17: Introduction to the Emacs Mouse, Part III" - sheesh!) It is fine if you have the possibility to configure it this way, and the possibility to tell people how convenient you find it and they should try it as well, but I won't accept something so completely backward from all customary defaults with no apparent advantage without screaming all the while. Uh, have you had your coffee this morning, David? To make one thing clear, again: I find full-line links in buffers like Dired convenient, yes. I invite others to try it, yes. No, it doesn't require any explaining. I have not used full-line links at the same time as using mouse-1 to follow links, so I have not experienced any problems in that regard. Once we introduce mouse-1 linking, any of the compromises we have been discussing might require some explaining. I don't see double-click vs any of the other means of setting point being less intuitive or requiring more explanation. I threw out double-click-to-set-point this morning as another possibility to think about. I don't think any of the "solutions" mentioned so far are wonderful, or I wouldn't have tossed this one into the ring for consideration. Please _don't_ think in the category "what would be most convenient for me, even if by a hairline". Rather try thinking "what would be most convenient to _explain_ for me". Ease of explanation is important. Ease of use (convenience) and discovery is even more important. If people ask you "Why for heaven's sake does it do that?", you should have a very convincing answer, or you are doing something wrong. Agreed. In contrast, with a scheme like your, I'd be ashamed to explain, and I would not have anything close to a convincing answer to "Why for heaven's sake does it do that?". And "That's just the way it does it. Take it or leave it." is not what I like to offer as an explanation. I wouldn't want you to feel ashamed on my behalf. And far be it from me to say "take it or leave it." Let me say, instead, "please take it and think about it" - that's all. You've obviously thought about it, and you reject it; that's OK by me. > In such buffers we do need to set point sometimes, and we sometimes > want to create a region, but we don't usually need to double-click > to select a word. Which is why double clicking anywhere on the line is perfect for following a link. Or setting point ;-). Again, honestly I don't know how inconvenient double-clicking to set point or follow a link would be - I'd have to try it. I do know that I prefer the full-line mouseover in buffers with full-line entries, and I'll keep that behavior in my own Emacs, whatever I decide to choose for following links vs setting point. > Of course, there is the argument that this won't be intuitive to > users, but I think we'll be up against such an argument no matter > what we choose. So let us choose the worst? No, let us find the best, whatever that may be. Let us find the easiest to use, easiest to discover, easiest to explain, most flexible approach that differs least from a) behavior elsewhere in Emacs and b) behavior in other apps. Amen. > Another argument against this might be that a too-slow double-click > would mess up the user, mistakenly following the link. I think users > can deal with this. Sure. They'll just switch to a different editor. Heavens! Lecturing about vi or TextPad is no fun at all! > In Windows, a simple GUI dialog lets you set the double-click > interval (speed), and this setting applies to all > applications. (BTW, Do we pick up this Windows setting in Emacs, to > use as our double-click delay?) If you read in the coding guidelines you'll find that a double-click action should _add_ to a single click action so that the single click action can be executed immediately, without delay or other disturbances. Uh, what's the connection with what I wrote? > - It should be at least as easy to follow a link as to set > point. For a button-like link. But not for whole lines. For any link, it should be at least as easy to follow a link as to set point - especially in 'buffers that are primarily "view" buffers, as opposed to "edit".' Regardless of the shape and size of the hot zone. > In buffers that are primarily "view" buffers, as opposed to "edit", > it is tolerable if setting point is not quite as easy as following a > link. dired buffers are used for quite more than just selecting a file to view. Yes, they are. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 19:44 ` Drew Adams @ 2005-02-25 20:07 ` Stefan Monnier 2005-02-25 20:32 ` David Kastrup 2005-02-25 20:53 ` Drew Adams 2005-02-25 20:27 ` David Kastrup 1 sibling, 2 replies; 67+ messages in thread From: Stefan Monnier @ 2005-02-25 20:07 UTC (permalink / raw) Cc: emacs-devel > Terrible. If I tell that to any new Emacs users, they'll shake their > heads and leave Emacs alone. > And when you tell them about mouse-1 plus mouse-3 and all the rest? The difference is that you don't need to tell Emacs novices about mouse-1+mouse-3 (which I never ever use in Emacs, BTW, I always use drag-mouse-1 instead). OTOH you do have to explain to them why they can't just "click to place point" and how to work around it. Stefan ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 20:07 ` Stefan Monnier @ 2005-02-25 20:32 ` David Kastrup 2005-02-25 20:53 ` Drew Adams 1 sibling, 0 replies; 67+ messages in thread From: David Kastrup @ 2005-02-25 20:32 UTC (permalink / raw) Cc: Drew Adams, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >> Terrible. If I tell that to any new Emacs users, they'll shake >> their heads and leave Emacs alone. > >> And when you tell them about mouse-1 plus mouse-3 and all the rest? > > The difference is that you don't need to tell Emacs novices about > mouse-1+mouse-3 (which I never ever use in Emacs, BTW, I always use > drag-mouse-1 instead). Oh, but clicking mouse-3 twice for deletion is so convenient that it warrants teaching. Also using mouse-3 for _extending_ a region can't be replaced by dragging. But you are right in that one does not _need_ to teach it to people, and they are not worse off than with any other editor. It is ok if people discover the joys of Emacs not all at once. But we should try to avoid hitting them with unpleasant surprises right away. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 67+ messages in thread
* RE: follow-link in grep buffer 2005-02-25 20:07 ` Stefan Monnier 2005-02-25 20:32 ` David Kastrup @ 2005-02-25 20:53 ` Drew Adams 1 sibling, 0 replies; 67+ messages in thread From: Drew Adams @ 2005-02-25 20:53 UTC (permalink / raw) > Terrible. If I tell that to any new Emacs users, they'll > shake their heads and leave Emacs alone. > And when you tell them about mouse-1 plus mouse-3 and all the rest? The difference is that you don't need to tell Emacs novices about mouse-1+mouse-3 (which I never ever use in Emacs, BTW, I always use drag-mouse-1 instead). OTOH you do have to explain to them why they can't just "click to place point" and how to work around it. Well, I don't want to belabor this point, but mouse-1+mouse-3 behavior does need introducing, _if_ someone is to use it - people are not likely to _discover_ that behavior. Double-click behavior is something that many people will discover without explanation, IMO. Others may disagree... BTW, I'm a bit surprised that you always drag to select. Do you also not use two mouse-3 clicks to delete the region? That's another handy operation (though not basic or essential) that requires some introduction. Unlike mouse-1+mouse-3, people _are_ likely to discover that on their own, but it might take them a while to understand just what they've done. Using the mouse to follow a link and set point are basic operations that should not require any how-to explanation. Today, we do need to "tell" novices about mouse-2 and links. Tomorrow, we may unfortunately need to "tell" them about other ways to use the mouse to do simple things. We should try to come up with a scheme that leaves the three most basic mouse operations - setting point, defining the region, and following links - without need of an explanation. It doesn't sound like we're quite there yet. Your point is valid, of course, that novices might not need mouse-1+mouse-3. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 19:44 ` Drew Adams 2005-02-25 20:07 ` Stefan Monnier @ 2005-02-25 20:27 ` David Kastrup 2005-02-25 21:24 ` Robert J. Chassell 2005-02-25 23:34 ` Drew Adams 1 sibling, 2 replies; 67+ messages in thread From: David Kastrup @ 2005-02-25 20:27 UTC (permalink / raw) Cc: emacs-devel "Drew Adams" <drew.adams@oracle.com> writes: > See above. I use mouse-1 to set point currently, as usual (no > double-clicking). If we changed mouse-1 to follow links, then I > would double-click to set point - or I would forego > mouse-1-follows-links. "Simple editing" would not be affected > detrimentally by what I or Kim described, and such buffers are not > for non-simple editing. Look, you are arguing for an interface you are not even using yourself. Whenever I explain why a particular default is horrible, you say "Oh, I have configured something different myself currently". This leads nowhere. > This is not an interface I want to have to explain to anybody. > > We want an interface that does _not_ need explaining - especially > wrt basic mouse operations such as following links and setting > point. I think this behavior would be fairly intuitive and easy to > discover - no special explanation would be needed. I disagree. > Keep in mind, too, that Emacs novices already need to learn much > trickier mouse manipulations (double-click and triple-click to > select, One does not need to learn that. One gets along fine without it. > mouse-1 plus mouse-3 to select, Again, dragging mouse-1 just works. The default behavior will get you rolling without surprises, even though you miss out on features. > etc.). How did you learn all that? You probably read it in > Info. Well, what I'm talking about is a lot less to explain than all > that. And, more importantly, it probably would be discovered and not > need explaining at all (unlike mouse-1 plus mouse-3 to select etc.). > > > Assuming that I were able to convince others about this (;-)), what > > would that mean wrt mouse bindings? In buffers like these (Dired, > > grep, Buffer List), the main mouse action is not to set point, but > > setting point is still an important action (e.g. in Dired). I don't > > have a brilliant suggestion, but I wonder if it wouldn't be > > reasonable, in such buffers, to reverse one approach mentioned > > already: > > > > - mouse-1 follows the link (which, to me, should be the whole line) > > > > - double-click mouse-1 sets point > > Terrible. If I tell that to any new Emacs users, they'll shake their > heads and leave Emacs alone. > > And when you tell them about mouse-1 plus mouse-3 and all the rest? I can tell them the _advantages_ of the separate mouse-3 thing (which is much more friendly on the sinews than dragging), and in particular mouse-3 deletion. If they can't remember it, they still will be able to everything necessary, only more cumbersome. I have no problems with pointing out available additional convenience. I have a problem with pointing out unexpected complications. > Personally, I find the full-line highlighting so useful that if > forced to choose, I'll probably choose not to have mouse-1 follow > links in such buffers. _I_ might not mind double-clicking to set > point in such buffers, but if you barf at the thought, well, we > might have different taste. I seem to be a complete failure at communicating my opinion. Taste is not a question here. One of the great things of Emacs is that it can be configured to accommodate almost any taste and need. We are talking about a default setting here: and that does not need to be tasteful, but obvious and generally useful and consistent. And "I find it nice that if I reconfigure the highlighting face that as a side effect I get in dired an orientation line" has nothing to do whatsoever with consistency. We don't want the behavior in dired to be surprisingly different from the rest by default, and we don't want to have some moderately convenient choice for dired (and I disagree with your assessment even just in dired) to make all the rest less logical and convenient. It is ok to add options to dired to make it able to achieve such effects for a user with particular desires. But the defaults should be consistent and predictable even for newcomers if there are not very strong reasons against that. > It is fine if you have the possibility to configure it this way, > and the possibility to tell people how convenient you find it > and they should try it as well, but I won't accept something so > completely backward from all customary defaults with no apparent > advantage without screaming all the while. > > Uh, have you had your coffee this morning, David? > > To make one thing clear, again: I find full-line links in buffers > like Dired convenient, yes. I invite others to try it, yes. No, it > doesn't require any explaining. No? It does not require explaining that you can't do anything useful with the mouse in dired in an obvious way without the buffer disappearing? Because every possible location is a link? > I have not used full-line links at the same time as using mouse-1 to > follow links, so I have not experienced any problems in that regard. Sigh. The current point of discussion is double-click versus single click in connection with buttons and linkable areas. We won't get far by "I have not experienced any problems with the setup I am proposing because I have not used it yet" kind of arguments. > Once we introduce mouse-1 linking, any of the compromises we have > been discussing might require some explaining. We _have_ introduced mouse-1 linking. That is what is in CVS. That is what we are talking about. > > In Windows, a simple GUI dialog lets you set the double-click > > interval (speed), and this setting applies to all > > applications. (BTW, Do we pick up this Windows setting in > > Emacs, to use as our double-click delay?) > > If you read in the coding guidelines you'll find that a > double-click action should _add_ to a single click action so > that the single click action can be executed immediately, > without delay or other disturbances. > > Uh, what's the connection with what I wrote? If the single click follows a link, and a double click sets point, you can't obey the single click before waiting for the double click to expire since undoing the link following is not expedient. In contrast, you can immediately set point on a single click even before knowing whether this click will actually turn into a double click. The Emacs Lisp manual says the following in (info "(elisp) Repeat Events") [...] When the user performs a double click, Emacs generates first an ordinary click event, and then a double-click event. Therefore, you must design the command binding of the double click event to assume that the single-click command has already run. It must produce the desired results of a double click, starting from the results of a single click. This is convenient, if the meaning of a double click somehow "builds on" the meaning of a single click--which is recommended user interface design practice for double clicks. So it is rather obvious that even if there were not "prior art" for having a double click invoke an object-related action, and a single click just set point inside of an addressable area, the choice between those assignments is not arbitrary. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 20:27 ` David Kastrup @ 2005-02-25 21:24 ` Robert J. Chassell 2005-02-25 23:34 ` Drew Adams 1 sibling, 0 replies; 67+ messages in thread From: Robert J. Chassell @ 2005-02-25 21:24 UTC (permalink / raw) ... intuitive `Intuitive' is the wrong word. When I started with a windowing system, my mnemonic was `m means menue'. That is because the middle mouse button on that system evoked a menu. In this window, `m means mouse-yank-at-click'. This is different. As for `set point', `set mark', `paste': that seems good to me as left mouse, right mouse, middle mouse, even though I use my left hand with my mouse, which some people say should mean that I reverse the button bindings. What you are saying is that many people have learned first to use other applications than Emacs and have learned their mouse bindings. And not being an old, integrated environment, a virtual Lisp machine with a built-in editor (as well as nowadays, at least two Web browsers), they learned to press the number one mouse button (be it on the left or the right) to follow a link of some sort rather than to set point. I do not see anything wrong with that, so long as the links are small enough that I can, if need be, copy or delete the region when editing it; but please do not use the word `intuitive' for what is learned process. -- Robert J. Chassell bob@rattlesnake.com GnuPG Key ID: 004B4AC8 http://www.rattlesnake.com http://www.teak.cc ^ permalink raw reply [flat|nested] 67+ messages in thread
* RE: follow-link in grep buffer 2005-02-25 20:27 ` David Kastrup 2005-02-25 21:24 ` Robert J. Chassell @ 2005-02-25 23:34 ` Drew Adams 2005-02-26 0:44 ` David Kastrup 1 sibling, 1 reply; 67+ messages in thread From: Drew Adams @ 2005-02-25 23:34 UTC (permalink / raw) Cc: emacs-devel > I use mouse-1 to set point currently, as usual (no > double-clicking). If we changed mouse-1 to follow links, then I > would double-click to set point - or I would forego > mouse-1-follows-links. "Simple editing" would not be affected > detrimentally by what I or Kim described, and such buffers are not > for non-simple editing. Look, you are arguing for an interface you are not even using yourself. I argued for full-line mouseover highlighting in buffers like grep. I've been using it for decades. Try it; you'll like it. I also threw out, as a _separate_ idea, the possibility that if we have mouse-1 follow links, then double-click mouse-1 might set point (instead of mouse-1 setting point and double-click following links). I provided a little rationale for such an approach, but I also explained that I was _not_ going to the barricades for that idea. If you find that idea crazy, I won't fight for it. I have not used mouse-1 to follow links in Emacs. mea culpa. Whenever I explain why a particular default is horrible, you say "Oh, I have configured something different myself currently". This leads nowhere. Bad generalization. A better generalization is "Whenever David discusses something, he screams like Howard Dean in Iowa." But neither generalization is very good. > This is not an interface I want to have to explain to anybody. > > We want an interface that does _not_ need explaining - especially > wrt basic mouse operations such as following links and setting > point. I think this behavior would be fairly intuitive and easy to > discover - no special explanation would be needed. I disagree. > Personally, I find the full-line highlighting so useful that if > forced to choose, I'll probably choose not to have mouse-1 follow > links in such buffers. _I_ might not mind double-clicking to set > point in such buffers, but if you barf at the thought, well, we > might have different taste. I seem to be a complete failure at communicating my opinion. No, on that score you do well. Taste is not a question here. One of the great things of Emacs is that it can be configured to accommodate almost any taste and need. We are talking about a default setting here: and that does not need to be tasteful, but obvious and generally useful and consistent. "we might have different taste" in this matter: We might have different opinions of what the default setting should be. Sorry if that wasn't clear. The personal choice I was referring to was this: I will keep full-line mouseover and forego mouse-1-follows-links, in my own Emacs. The former is that important to me. I would _like_ standard Emacs to follow my taste in this, but I don't expect to be able to convince others on this. Not this time around, anyway ;-). That personal choice is separate (different) from the question of double-click mouse-1 to set point vs to follow links. The latter is a discussion about what the default Emacs behavior should be. We might have different taste in that choice. I say "might" because I am not arguing forceably for one or the other; I don't even know what I would prefer in that regard. I just threw out an additional possibility for consideration. As I said in my reply to Stefan, "It doesn't sound like we're quite there yet." I was just trying to contribute to finding a solution. FWIW, my reason for bringing up the full-line mouseover in this discussion was Kim's remark that we might consider _reducing_ the size of the mouseover fields in grep. He made his suggestion (of a possibility) because of the perceived problem with setting point in such buffers if mouse-1 follows links. There remains a problem with setting point vs following links, IMO. Reducing the hot zones won't solve the problem (though it would restrict it), and such a hot-zone reduction works against what I think we should be doing wrt mouseover in such buffers. So 1) I spoke my mind wrt full-line mouseover zones and 2) I threw out yet another set-point-vs-follow-link possibility, for discussion. And "I find it nice that if I reconfigure the highlighting face that as a side effect I get in dired an orientation line" has nothing to do whatsoever with consistency. We don't want the behavior in dired to be surprisingly different from the rest by default, and we don't want to have some moderately convenient choice for dired (and I disagree with your assessment even just in dired) to make all the rest less logical and convenient. I guess you are saying that mouse-face highlighting should always be the same, for consistency. Consistency is a valid argument, in general. I agree that consistency is important, but everything is relative. This particular inconsistency is not a biggee to me (mouseover highlighting is always clear to users, regardless of the color etc.), but "we might have different taste" in weighing the relative advantage here. I made the argument that buffers such as Dired, Buffer List and Compile (and Info and perhaps Customize) have certain properties in common. They are more like view (or browser) modes than edit modes, even though they are not strictly view-only. For such buffers to be treated _consistently_ in a slightly different way from others wrt mouse-face might not be such a bad thing, IMO. There are many ways in which such buffers are already inconsistent wrt normal edit buffers (e.g. self-insert keys vs single-key commands). The idea would be to keep them fairly consistent among themselves, treating them the same in this regard. On the other hand, part of the perceived inconsistency here comes from the fact that some other "links" in Emacs are not really links, but are in fact action buttons (or even pulldown menus). Perhaps all true links everywhere should have a subtle mouse-face such as underline. But what about links that are hard to find? Does having a bright, garish mouse-face help you find them? Not really. In buffers where there are few links, mouse-over won't help you find them. Having links show up only on mouseover makes sense only in link-dense buffers where the link locations are predictable. In other buffers, (including Info and perhaps Customize), it might make sense to show the link (e.g. by underlining) even without mouseover. We might come up with consistent guidelines for different classes of buffers, or we might leave it up to individual users somehow. Think about links on the Web: in some contexts it does makes sense to show links only on mouseover; in the text of most Web pages, however, it makes sense to show links all the time (e.g. by underlining). Different contexts call for different treatment, but there should be a set of guidelines underlying the different treatments, and, _other things being equal_, consistency should be the aim. IOW, I too feel strongly about consistency. I think you heard me argue previously, for instance, that all links in Customize should look the same (and should look like links), and all buttons should look the same (and should look like buttons), and all pulldown menus should look the same (and should look like pulldown menus). > To make one thing clear, again: I find full-line links in buffers > like Dired convenient, yes. I invite others to try it, yes. No, it > doesn't require any explaining. No? It does not require explaining that you can't do anything useful with the mouse in dired in an obvious way without the buffer disappearing? Because every possible location is a link? No, that does not require any explaining. That behavior is immediately obvious (and is consistent with the rest of Emacs): mouse-2 clicking a link follows the link, as always. That the links are longer or shorter might be better or worse, depending on your taste, but the behavior of clicking a link requires no explanation - it is 100% standard fare. We are not talking about any new mouse behavior here (e.g. mouse-1 follows links); that paragraph was about full-line mouse-face on its own. > I have not used full-line links at the same time as using mouse-1 to > follow links, so I have not experienced any problems in that regard. Sigh. The current point of discussion is double-click versus single click in connection with buttons and linkable areas. We won't get far by "I have not experienced any problems with the setup I am proposing because I have not used it yet" kind of arguments. Have any of the ideas discussed in this context (e.g. double-click to follow link) been used yet in Emacs? I don't think so. Is it not OK to discuss hypothetical changes when looking for a solution? > Once we introduce mouse-1 linking, any of the compromises we have > been discussing might require some explaining. We _have_ introduced mouse-1 linking. That is what is in CVS. That is what we are talking about. "We are talking about" not only mouse-1 linking (which has not yet been released, AFAIK) but, in particular, how to make it play well with other things. The ideas under discussion are hypothetical. That is, it is the combination of mouse-1 linking with the other ideas that is hypothetical. In your words, the context is "double-click versus single click in connection with buttons and linkable areas." We are discussing possible solutions. > > In Windows, a simple GUI dialog lets you set the double-click > > interval (speed), and this setting applies to all > > applications. (BTW, Do we pick up this Windows setting in > > Emacs, to use as our double-click delay?) > > If you read in the coding guidelines you'll find that a > double-click action should _add_ to a single click action so > that the single click action can be executed immediately, > without delay or other disturbances. > > Uh, what's the connection with what I wrote? If the single click follows a link, and a double click sets point, you can't obey the single click before waiting for the double click to expire since undoing the link following is not expedient. In contrast, you can immediately set point on a single click even before knowing whether this click will actually turn into a double click. Good point. Yes, I guess double-click-to-set-point would violate the coding guideline (which I reread recently, but somehow forgot). I withdraw that idea. Uncle! It was a terrible idea. I never should have brought it up for your consideration. Good, one less solution to worry about. So, where were we?... Your guideline point, however, has nothing (that I can see) to do with what I wrote about setting the double-click delay. And I would still like to know if Emacs picks up the user's Windows setting for double-click delay. Anyone know? ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 23:34 ` Drew Adams @ 2005-02-26 0:44 ` David Kastrup 2005-02-26 1:18 ` Drew Adams 0 siblings, 1 reply; 67+ messages in thread From: David Kastrup @ 2005-02-26 0:44 UTC (permalink / raw) Cc: emacs-devel "Drew Adams" <drew.adams@oracle.com> writes: > > I use mouse-1 to set point currently, as usual (no > > double-clicking). If we changed mouse-1 to follow links, then I > > would double-click to set point - or I would forego > > mouse-1-follows-links. "Simple editing" would not be affected > > detrimentally by what I or Kim described, and such buffers are not > > for non-simple editing. > > Look, you are arguing for an interface you are not even using > yourself. > > I argued for full-line mouseover highlighting in buffers like > grep. I've been using it for decades. Try it; you'll like it. I don't. I don't need to particularly try it since it is the current default. To make this visually acceptable, we will need two different highlighting faces: a decent one on the whole line (such as underlining), and possibly a more striking one on selected "hot spots", like just the filename in a grep or dired buffer. The whole actionable area can always be invoked by mouse-2, and I think we have agreement that having selected hot spots (like Customize buttons) react to mouse-1 is a good idea. We have not much talked about larger actionable areas not specifically marked as buttons by the application programmer: the initial plans were more or less based on making them behave equal to hot spots or buttons, which has the disadvantage that they often cover areas where one would want to set point with mouse-1. There is some agreement that offering more than mouse-2 on them for triggering the action would be a good idea. My proposal was to use a double mouse-1 click here, so that a single click can still set point. Opinions here vary wildly, with quite a few proposals trying to make a single mouse-1 click also work for triggering an action, but with a mixture of special rules like "how long the click?" "click into non-selected window?" "click into non-focused frame" to pick stuff apart. Rules that partly violate some policies for click event set forth in the Elisp manuals, and rules that partly can't be cast into event types described by our hypertext help system. It is clear that tastes for one's own personal use vary wildly, and it certainly would be nice if many tastes could be accommodated with customization possibilities. > Bad generalization. A better generalization is "Whenever David > discusses something, he screams like Howard Dean in Iowa." But > neither generalization is very good. Whatever. Enough people have pointed out by now that they see little merit or sense or consistency or logic in my proposals. So I'll just stop screaming and let others decide. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 67+ messages in thread
* RE: follow-link in grep buffer 2005-02-26 0:44 ` David Kastrup @ 2005-02-26 1:18 ` Drew Adams 0 siblings, 0 replies; 67+ messages in thread From: Drew Adams @ 2005-02-26 1:18 UTC (permalink / raw) > Bad generalization. A better generalization is "Whenever David > discusses something, he screams like Howard Dean in Iowa." But > neither generalization is very good. Whatever. Enough people have pointed out by now that they see little merit or sense or consistency or logic in my proposals. So I'll just stop screaming and let others decide. Chalk that one up to my bad sense of humor - I apologize. None of us need ad hominem arguments; I was trying to say that, sarcastically, by making such an argument myself. FWIW, I don't find your double-click-to-follow+single-click-to-set-pt suggestion worse than my opposite idea. In fact, your reference to the coding guideline about click-1 and click-2 convinced me that my suggestion was not a good one. Thanks for that reminder. I doubt too that people in general see "little sense" in your proposals in general or in this proposal, in particular. Quite the contrary. I personally think it's worth kicking this particular design problem around a little more, to see if the discussion doesn't come up with something elegant. There have been several proposals so far that I find acceptable, but I don't think we've yet reached that "Eureka!" moment that brings a really contented consensus. It's not as if this problem is critical or urgent. We can do something not-too-unreasonable for the current release and think about it some more for later. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 11:12 ` Kim F. Storm 2005-02-25 12:55 ` Stefan Monnier @ 2005-02-25 23:35 ` Kim F. Storm 2005-02-26 2:28 ` Stefan Monnier 1 sibling, 1 reply; 67+ messages in thread From: Kim F. Storm @ 2005-02-25 23:35 UTC (permalink / raw) Cc: Nick Roberts, rms, emacs-devel storm@cua.dk (Kim F. Storm) writes: >> I am afraid that the same is the case here. I have >> focus-follows-mouse set here by default in the window manager, so I >> don't expect clicks that don't do anything. The current behavior >> (where a window change does not follow links at all) is more confusing >> than the previous one. > > This really hasn't anything to do with focus-follows-mouse. > > What if you set mouse-autoselect-window ? > > > In any case, I agree that last modification isn't perfect, and > I'll think about what to do. > I have added a new option mouse-1-click-in-non-selected-windows that controls whether mouse-1 click in non-selected windows will follow links. Default is t. -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 23:35 ` Kim F. Storm @ 2005-02-26 2:28 ` Stefan Monnier 2005-02-26 2:50 ` David Kastrup 2005-02-26 22:24 ` Kim F. Storm 0 siblings, 2 replies; 67+ messages in thread From: Stefan Monnier @ 2005-02-26 2:28 UTC (permalink / raw) Cc: Nick Roberts, rms, emacs-devel > I have added a new option mouse-1-click-in-non-selected-windows > that controls whether mouse-1 click in non-selected windows > will follow links. Default is t. I think it should be purely and simply removed. It addresses the "click to focus window" problem but nobody ever complained about it (contrary to the problem of "click to focus frame" which is still open). Stefan ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-26 2:28 ` Stefan Monnier @ 2005-02-26 2:50 ` David Kastrup 2005-02-26 3:32 ` Stefan Monnier 2005-02-26 22:24 ` Kim F. Storm 1 sibling, 1 reply; 67+ messages in thread From: David Kastrup @ 2005-02-26 2:50 UTC (permalink / raw) Cc: Nick Roberts, emacs-devel, rms, Kim F. Storm Stefan Monnier <monnier@iro.umontreal.ca> writes: >> I have added a new option mouse-1-click-in-non-selected-windows >> that controls whether mouse-1 click in non-selected windows >> will follow links. Default is t. > > I think it should be purely and simply removed. > It addresses the "click to focus window" problem but nobody ever complained > about it (contrary to the problem of "click to focus frame" which is still > open). But that's what the x-mouse-click-focus-ignore-position variable is for. And we also have focus-follows-mouse to have Emacs be able to do what it takes to give a frame focus. Anyway, I am complete against automatisms that get things right 70% of all the time immediately, with the user being unable to predict the behavior 90% of the time, so that he needs to check every time he uses the feature what actually happened. If there is a braindead consistent rule that gets things right even only 40% of the time, but does not require switching on the brain or crosschecking for correcting the thing efficiently about 60% of the time, this is preferable in my book. If I am talking to a person, I don't save time if he tries completing my sentences for me. And similar rules hold with computers, unless we are talking about seriously disabled users for which any correcting action takes lots of time. Only in that setting make complicated second-guessing rules any sense. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-26 2:50 ` David Kastrup @ 2005-02-26 3:32 ` Stefan Monnier 0 siblings, 0 replies; 67+ messages in thread From: Stefan Monnier @ 2005-02-26 3:32 UTC (permalink / raw) Cc: Nick Roberts, emacs-devel, rms, Kim F. Storm >>> I have added a new option mouse-1-click-in-non-selected-windows >>> that controls whether mouse-1 click in non-selected windows >>> will follow links. Default is t. >> >> I think it should be purely and simply removed. >> It addresses the "click to focus window" problem but nobody ever complained >> about it (contrary to the problem of "click to focus frame" which is still >> open). > But that's what the x-mouse-click-focus-ignore-position variable is > for. And we also have focus-follows-mouse to have Emacs be able to do > what it takes to give a frame focus. Then let's use that. > Anyway, I am complete against automatisms that get things right 70% of > all the time immediately, with the user being unable to predict the > behavior 90% of the time, so that he needs to check every time he uses > the feature what actually happened. If there is a braindead > consistent rule that gets things right even only 40% of the time, but > does not require switching on the brain or crosschecking for > correcting the thing efficiently about 60% of the time, this is > preferable in my book. Agreed, which is why x-mouse-click-focus-ignore-position seems like the right solution: it's very deterministic (doesn't depend on precisely where you click, for instance) and safe and unsurprising since when it doesn't do what the user intended, it just did a bit less than what she intended and she can trivially get what she wants by clicking one more time. Stefan ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-26 2:28 ` Stefan Monnier 2005-02-26 2:50 ` David Kastrup @ 2005-02-26 22:24 ` Kim F. Storm 2005-02-27 2:00 ` Stefan Monnier 1 sibling, 1 reply; 67+ messages in thread From: Kim F. Storm @ 2005-02-26 22:24 UTC (permalink / raw) Cc: Nick Roberts, rms, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >> I have added a new option mouse-1-click-in-non-selected-windows >> that controls whether mouse-1 click in non-selected windows >> will follow links. Default is t. > > I think it should be purely and simply removed. > It addresses the "click to focus window" problem but nobody ever complained > about it (contrary to the problem of "click to focus frame" which is still > open). IIRC, you were the one to propose _not_ following a link in a non-selected window, and I initially said it made sense (so I implemented it unconditionally). Personally, I got irritated by that, and others said it would be confusing to novices too -- so I changed it to an option. Of course, I can remove it all-together if nobody finds it useful. But maybe it would make more sense to have an option would could make a mouse click in a non-selected window _only_ select that window rather than also setting point (or following links or whatever). That would be analogue to the x-mouse-click-focus-ignore-position for frame focus. WDOT? -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-26 22:24 ` Kim F. Storm @ 2005-02-27 2:00 ` Stefan Monnier 2005-02-27 8:26 ` Lennart Borgman 0 siblings, 1 reply; 67+ messages in thread From: Stefan Monnier @ 2005-02-27 2:00 UTC (permalink / raw) Cc: Nick Roberts, rms, emacs-devel > IIRC, you were the one to propose _not_ following a link in a > non-selected window, and I initially said it made sense (so I > implemented it unconditionally). I meant "frame", sorry. Stefan ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-27 2:00 ` Stefan Monnier @ 2005-02-27 8:26 ` Lennart Borgman 2005-02-27 21:46 ` Stefan Monnier 0 siblings, 1 reply; 67+ messages in thread From: Lennart Borgman @ 2005-02-27 8:26 UTC (permalink / raw) Cc: emacs-devel ----- Original Message ----- From: "Stefan Monnier" <monnier@iro.umontreal.ca> > > IIRC, you were the one to propose _not_ following a link in a > > non-selected window, and I initially said it made sense (so I > > implemented it unconditionally). > > I meant "frame", sorry. Am I seriously misunderstanding something? Is not the Emacs window focus what a user is interested in mostly here? For frame focus the window manager probably have good support that the user is using regardless of the app. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-27 8:26 ` Lennart Borgman @ 2005-02-27 21:46 ` Stefan Monnier 2005-02-27 22:09 ` Kim F. Storm 2005-02-28 1:03 ` Nick Roberts 0 siblings, 2 replies; 67+ messages in thread From: Stefan Monnier @ 2005-02-27 21:46 UTC (permalink / raw) Cc: emacs-devel >> > IIRC, you were the one to propose _not_ following a link in a >> > non-selected window, and I initially said it made sense (so I >> > implemented it unconditionally). >> >> I meant "frame", sorry. > Am I seriously misunderstanding something? Is not the Emacs window focus > what a user is interested in mostly here? For frame focus the window manager > probably have good support that the user is using regardless of the app. The original message said: However I might just want to select that window to resize it so AFAICT this whole thread has been about a confusion between "click mouse-1 to follow link" and "click mouse-1 to give focus to a *frame*". Of course maybe he really meant "window", but that seems rather unlikely to me. This said, I agree that I'd have expected the window-manager to take care of such things (basically the window-manager shouldn't pass on a mouse-1 click to the application if it was used to change focus). Stefan ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-27 21:46 ` Stefan Monnier @ 2005-02-27 22:09 ` Kim F. Storm 2005-02-28 1:03 ` Nick Roberts 1 sibling, 0 replies; 67+ messages in thread From: Kim F. Storm @ 2005-02-27 22:09 UTC (permalink / raw) Cc: Lennart Borgman, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: > Of course maybe he really meant "window", but that seems rather unlikely > to me. This said, I agree that I'd have expected the window-manager to take > care of such things (basically the window-manager shouldn't pass on > a mouse-1 click to the application if it was used to change focus). At least the version of KDE that I'm using does pass it on. That's why I implemented x-mouse-click-focus-ignore-position. -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-27 21:46 ` Stefan Monnier 2005-02-27 22:09 ` Kim F. Storm @ 2005-02-28 1:03 ` Nick Roberts 1 sibling, 0 replies; 67+ messages in thread From: Nick Roberts @ 2005-02-28 1:03 UTC (permalink / raw) Cc: Lennart Borgman, emacs-devel > The original message said: > > However I might just want to select that window to resize it > > so AFAICT this whole thread has been about a confusion between "click > mouse-1 to follow link" and "click mouse-1 to give focus to a *frame*". > > Of course maybe he really meant "window", but that seems rather unlikely > to me. This said, I agree that I'd have expected the window-manager to take > care of such things (basically the window-manager shouldn't pass on > a mouse-1 click to the application if it was used to change focus). I could have said: However I might just want to select that window to scroll down it (I don't use scrollbars). This would require window focus while the above might only require frame focus. I didn't give thought to the type of focus, just that there were times where I got caught out following a link that I didn't want to follow. Nick ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 9:46 ` David Kastrup 2005-02-25 11:12 ` Kim F. Storm @ 2005-02-25 22:53 ` Richard Stallman 2005-02-26 0:16 ` David Kastrup 1 sibling, 1 reply; 67+ messages in thread From: Richard Stallman @ 2005-02-25 22:53 UTC (permalink / raw) Cc: nickrob, emacs-devel In order not to confuse people too much, I really would want to suggest strongly that we remap double-click to mouse-2 unconditionally by default (where a "stronger" mouse-2 binding exists), and also map mouse-1 to the same when the special "link" property is present. I do not see any sense in this proposal. That idea for double-click seems completely inconsistent with the overall scheme that we have adopted. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 22:53 ` Richard Stallman @ 2005-02-26 0:16 ` David Kastrup 2005-02-26 22:44 ` Kim F. Storm 0 siblings, 1 reply; 67+ messages in thread From: David Kastrup @ 2005-02-26 0:16 UTC (permalink / raw) Cc: nickrob, emacs-devel Richard Stallman <rms@gnu.org> writes: > In order not to confuse people too much, I really would want to > suggest strongly that we remap double-click to mouse-2 unconditionally > by default (where a "stronger" mouse-2 binding exists), and also map > mouse-1 to the same when the special "link" property is present. > > I do not see any sense in this proposal. That idea for double-click > seems completely inconsistent with the overall scheme that we have > adopted. The "overall scheme" that we have adopted historically is that any hyperlink or action is done with mouse-2. That is perfectly consistent and nobody has argued that it should be removed, The problem that we are trying to address here is that a) it is also completely unexpected to new users, b) mouse-2 is inconvenient on a _lot_ of touch pads and mice and often has to be done by chording. Outside of the world of Emacs, triggering actions has traditionally been done by double-clicking mouse-1. Remapping this double click will give new users _one_ sort of behavior they are accustomed to from both MacIntosh and Windows applications, as well as a lot of X11 dialogs (where double clicking usually means select and take a choice directly, like in a file dialog). It will also give experienced users with a two-button device a more convenient way to trigger an action. One common action triggered nowadays is following links. In browsers and increasingly also on desktop objects, the trend has been going to do this action with a single mouse-1 click. Since mouse-1 is rather commonly used for setting point in Emacs, having large areas behave like that in Emacs does not seem appropriate, even while Customize buttons and similarly sharply confined objects are likely to be recognized as something where one would not want to place point. Using a special link property on them could achieve the remapping of mouse-1 only on those areas. Something that looks like a button is a candidate for single click, and so is a hyperlink marked as a cross reference. That's two simple additional rules: a mouse-triggerable action can be additionally to the old mouse-2 binding also be triggered with a double-click on mouse-1, and on specially marked links, the same action can be done with even a single mouse-1 click. That is all. If you take a look at the complexity of the other approaches that have been suggested, like making a single click follow links, and a double click set point (in strict violation to the Emacs Lisp guidelines for double clicks), and with half a dozen exceptions like "don't follow link if pressed for longer than this" and "don't follow link if we have the first click in a frame" and "don't follow link if we have the first click in the window", the recipe I propose does a) need no special treatment of the first click into a window: if one explicitly aims at a small button, the guess "follow link" is reasonable. If one aims at a larger actionable area, the default action of "set point" does no harm. b) is consistent with the double-click action policy set out in the Elisp manual: the double-click action must work sensibly even if the single-click action has already been triggered. c) does not need special treatment of a double-click into a window: if the double-click is passed by the window-manager, then it is reasonable to take the action even when the frame or window did not have selection and/or focus previously. The additional possibilities for triggering actions on areas with doubleclicking mouse-1, and actions on specially marked, narrowly confined buttons/linked with singleclicking mouse-1, are just two additional possibilities/rules in addition to the old "mouse-2 for triggering anything" rule that is already violated, say, in Customize. My proposal is consistent with the double-click guidelines, it consists of just two rules that are easily accessible to a novice, it requires no special hold-longer times (for which we have no suitable descriptive keyboard events anyway, so you could not use C-h k or C-h w to find out about them), it requires no special treatment of first-click-to-frame/windoe and it provides functionality in a manner way more common in the world outside of Emacs than our current consistent but unusual and often inconvenient mouse-2. That you can't see _any_ sense in this proposal, in contrast to the complex, timing-dependent, rule-intensive, trick-requiring (like drag-if-you-don't-want-to-trigger-action) policy-violating, delayed-action-requiring other schemes that have both been proposed as well as implemented, I find somewhat surprising. I was of the opinion that at least _some_ sense might have been detectable in my proposal. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-26 0:16 ` David Kastrup @ 2005-02-26 22:44 ` Kim F. Storm 0 siblings, 0 replies; 67+ messages in thread From: Kim F. Storm @ 2005-02-26 22:44 UTC (permalink / raw) Cc: nickrob, rms, emacs-devel David Kastrup <dak@gnu.org> writes: > Richard Stallman <rms@gnu.org> writes: > >> In order not to confuse people too much, I really would want to >> suggest strongly that we remap double-click to mouse-2 unconditionally >> by default (where a "stronger" mouse-2 binding exists), and also map >> mouse-1 to the same when the special "link" property is present. >> >> I do not see any sense in this proposal. That idea for double-click >> seems completely inconsistent with the overall scheme that we have >> adopted. > > The "overall scheme" that we have adopted historically is that any > hyperlink or action is done with mouse-2. That is perfectly > consistent and nobody has argued that it should be removed, The > problem that we are trying to address here is that I looked at grep and gnus group buffers which have been presented as examples of the problems with the follow-link property. In both cases, the follow-link property is set to "mouse-face" meaning that only areas which have the mouse-face property in those buffers will map mouse-1 to mouse-2. In gnus group buffer, the mouse-face is put on the group name only, so it is easy to set point on a group line without entering that group. In grep buffers, it seems that (almost) full lines are highlighted with the mouse-face -- so practically the whole buffer is "mouse-1" aware. As I suggested earlier, one simple solution would be to only put mouse-face on the file:line: part, but this was rejected by some of you (who wants to have his cake and eat it too :-) To me it would be hard to explain to novice users why following a mouse-face highlighted link in an info or help buffer is "opened" with a single click, but a similarly highlighted group name in a gnus buffer need a double click... > Since mouse-1 is rather > commonly used for setting point in Emacs, having large areas behave > like that in Emacs does not seem appropriate, If those large areas have mouse-face, it seems appropriate to me. At least it could be a different mouse-face if they require a double click. -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: follow-link in grep buffer 2005-02-25 6:51 ` Nick Roberts 2005-02-25 9:46 ` David Kastrup @ 2005-02-25 22:52 ` Richard Stallman 1 sibling, 0 replies; 67+ messages in thread From: Richard Stallman @ 2005-02-25 22:52 UTC (permalink / raw) Cc: emacs-devel No. I wasn't aware of that. With the default setting, the user would have to move the mouse and release it within 350 milliseconds for it to have any effect. I think must be quite hard to do. I don't think that is what it does--is there perhaps a misunderstanding? ^ permalink raw reply [flat|nested] 67+ messages in thread
end of thread, other threads:[~2005-02-28 1:03 UTC | newest] Thread overview: 67+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2005-02-21 21:08 follow-link in grep buffer Nick Roberts 2005-02-21 21:19 ` Stefan Monnier 2005-02-21 22:48 ` Nick Roberts 2005-02-22 0:08 ` Drew Adams 2005-02-22 9:48 ` Kim F. Storm 2005-02-22 13:41 ` Stefan Monnier 2005-02-22 14:24 ` Kim F. Storm 2005-02-22 14:25 ` Kim F. Storm 2005-02-22 17:33 ` Drew Adams 2005-02-22 0:48 ` Jason Rumney 2005-02-21 21:45 ` Drew Adams 2005-02-21 22:20 ` Luc Teirlinck 2005-02-21 22:36 ` Nick Roberts 2005-02-21 22:46 ` David Kastrup 2005-02-21 23:00 ` Luc Teirlinck 2005-02-21 23:05 ` Luc Teirlinck 2005-02-21 23:42 ` David Kastrup 2005-02-22 0:00 ` Drew Adams 2005-02-21 23:07 ` Luc Teirlinck 2005-02-22 0:44 ` Jason Rumney 2005-02-22 1:26 ` David Kastrup 2005-02-21 23:06 ` Drew Adams 2005-02-21 21:45 ` Lennart Borgman 2005-02-21 21:46 ` David Kastrup 2005-02-21 22:46 ` Kim F. Storm 2005-02-21 23:22 ` Luc Teirlinck 2005-02-22 18:11 ` Richard Stallman 2005-02-25 6:51 ` Nick Roberts 2005-02-25 9:46 ` David Kastrup 2005-02-25 11:12 ` Kim F. Storm 2005-02-25 12:55 ` Stefan Monnier 2005-02-25 13:25 ` Lennart Borgman 2005-02-25 13:40 ` Kim F. Storm 2005-02-25 14:20 ` Andreas Schwab 2005-02-25 13:37 ` Kim F. Storm 2005-02-25 14:10 ` David Kastrup 2005-02-26 13:53 ` Reiner Steib 2005-02-27 0:32 ` Richard Stallman 2005-02-25 16:33 ` Stefan Monnier 2005-02-25 16:47 ` David Kastrup 2005-02-25 16:59 ` Stefan Monnier 2005-02-25 23:05 ` Lennart Borgman 2005-02-25 16:37 ` Drew Adams 2005-02-25 18:09 ` David Kastrup 2005-02-25 19:44 ` Drew Adams 2005-02-25 20:07 ` Stefan Monnier 2005-02-25 20:32 ` David Kastrup 2005-02-25 20:53 ` Drew Adams 2005-02-25 20:27 ` David Kastrup 2005-02-25 21:24 ` Robert J. Chassell 2005-02-25 23:34 ` Drew Adams 2005-02-26 0:44 ` David Kastrup 2005-02-26 1:18 ` Drew Adams 2005-02-25 23:35 ` Kim F. Storm 2005-02-26 2:28 ` Stefan Monnier 2005-02-26 2:50 ` David Kastrup 2005-02-26 3:32 ` Stefan Monnier 2005-02-26 22:24 ` Kim F. Storm 2005-02-27 2:00 ` Stefan Monnier 2005-02-27 8:26 ` Lennart Borgman 2005-02-27 21:46 ` Stefan Monnier 2005-02-27 22:09 ` Kim F. Storm 2005-02-28 1:03 ` Nick Roberts 2005-02-25 22:53 ` Richard Stallman 2005-02-26 0:16 ` David Kastrup 2005-02-26 22:44 ` Kim F. Storm 2005-02-25 22:52 ` Richard Stallman
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).