Subject: bug#18590: 24.3.93; Scrolling changes/forgets selection

From: Alan Mackenzie <[email-masked]>
Date: Wed, 1 Oct 2014 13:29:07 +0000 (UTC)

N. Jackson <[email-masked]> wrote:
> At 11:28 -0300 on Tuesday 2014-09-30, Eli Zaretskii wrote:

>> Yes, there's a good reason: a selection in Emacs is always between
>> point and the mark, and when scrolling causes it to go off the
>> displayed portion of the buffer, Emacs moves point to bring it back
>> into view, which changes the selected portion of the text.

> Hmm... I see. But why does point need to be visible?

> It makes sense to me for a program to scroll the window to keep point in
> view when the user moves point; but it doesn't make sense to me for a
> program to move point when the user scrolls the window.

Suppose you've scrolled the window so that point is no longer in it, and
you now want to set point to somewhere now visible; how are you going to
do it?  How are you going to indicate the place to put point?  Nearly all
commands which work at a specific position do so at point.  Your answer is
going to be "click with the mouse".  But Emacs, as a fundamental design
feature, works on mouse-less systems.

> After all, point is the locus of the user's interaction with the
> contents of the buffer; presumably if they want to move that locus
> somewhere else, the user will move point explicitly. It makes little
> sense for the program to move point in this case -- even if it happens
> to have correctly read the mind of the user and the user really was
> scrolling the window with the intention of moving point, the program has
> no way of guessing in which column and row the user was going to put it,
> so it can essentially never do the right thing.

When I scroll a window, I always want point in that window, so that I
can easily start editing things there, etc..  In the instances when I want
to go back, I set mark first before scrolling, or scroll with a command
that itself sets the mark.

> Anyway, if point must be moved, please can it be put back automatically
> where it belongs when the user scrolls the window back and point's
> correct location is once again in view? Consider this a wishlist request.

> I'd also like to have typing, or any command involving point, scroll the
> window so that the correct location of point comes into view and then act on
> point where it belongs rather than where Emacs has "randomly" moved it.

That is a "feature" I most hate with so many GUI editing programs.  I have
scrolled a buffer somewhere to look at things, and absent-mindedly start
typing, or even worse touch an arrow key, or something - then BANG!!!! my
entire mental context is explosively wiped out, scrolling the buffer back
to point and leaving me no way to go back to where I was looking at.

> Of course this would have to be an optional behaviour, something like a
> (setq point-follows-window nil). Consider it as second wishlist request?

I'm glad you said that.  ;-)

> Thanks.

> Regards,
> N. Jackson.

-- 
Alan Mackenzie (Nuremberg, Germany).