From: martin rudalics <rudalics@gmx.at>
To: Eli Zaretskii <eliz@gnu.org>
Cc: dan@haxney.org, rms@gnu.org, eli@barzilay.org,
emacs-devel@gnu.org, nix@esperi.org.uk, monnier@iro.umontreal.ca,
dmoncayo@gmail.com, stephen@xemacs.org
Subject: Re: Proposal to improve the nomenclature of scrolling directions
Date: Sat, 10 Nov 2012 19:50:06 +0100 [thread overview]
Message-ID: <509EA1DE.5060105@gmx.at> (raw)
In-Reply-To: <83ip9dy0kp.fsf@gnu.org>
>> I meant to move `point' lazily _after_ we're done with scrolling.
>
> Do you mean moving the real point or its emulation?
When I start scrolling, I save the original position of `window-point'.
`window-point' and move `point' as usual. When I now want to
interactively insert text into the buffer, I move `point' to the saved
original position before.
> If the former, it
> is currently done as part of window_scroll_pixel_based, and that part
> will need to be changed if you want point to stay put disregarding the
> scrolling commands.
`point' moves as before. But we don't show it any more when it's moved.
>> If the emulation is on and the command is not a scrolling command
>> recognized by the emulation, move `point' to where it was before
>> scrolling. That's what I do in `scroll-restore-mode' (if wanted).
>
> You do that in scroll-restore-mode because the C code moves point.
> But if C code won't move point in these situations, then there will be
> no reason to move point back, because it will stay put.
Yes. And the region would be handled automatically as well.
>> Where would we have `forward-char' start moving when emulating such
>> "other editors"?
>
> At the original point position, i.e. forward-char will return there
> and cause point be displayed after the move.
My question was addressing your earlier statement:
> Those "other editors" that allow point to stay out of the
> window will scroll the display back to show point when some command is
> invoked that modifies the buffer text.
So we do not only "scroll back" when we modify text but also when we use
commands like `forward-char' and probably in many more cases.
>> > Given that the modification
>> > commands don't require moving point, and C-v/M-v won't either (as this
>> > is the main justification for the feature we are discussing), what
>> > will?
>>
>> The modification commands can require moving point, if desired.
>
> Doesn't make sense, IMO: it defeats the reason for not moving point on
> scroll in the first place.
The primary concerns of `scroll-restore-mode' are to preseve `point'
when scrolling back to where it was and to restore the region when
scrolling back to where `point' was. Jumping back on anything but a
scroll command is just an option. So I principally allow to move
`point' on scroll.
> I think the only commands that should move point in this mode are
> those which, well, move point. That is, goto-char, C-f/C-b, mouse-1
> click, etc. And these should cause display to scroll so that point
> comes into view.
How would commands calling `set-window-start' or `recenter' be
classified in this regard?
>> A basic invariant of Emacs is that at top-level any buffer's `point'
>> coincides with `window-point' of the selected window, provided the
>> buffer appears there. Violating this invariant means we have to rethink
>> lots of code, including things as fragile as the window configuration
>> code.
>
> I don't think anything I said violates this. What am I missing?
Ok. Then `window-start' <= `window-point' <= `window-end' is no more an
invariant?
martin
next prev parent reply other threads:[~2012-11-10 18:50 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-04 14:10 Proposal to improve the nomenclature of scrolling directions Dani Moncayo
2012-11-04 14:37 ` Stefan Monnier
2012-11-04 15:00 ` Dani Moncayo
2012-11-04 17:07 ` Juanma Barranquero
2012-11-04 17:30 ` Dani Moncayo
2012-11-04 17:31 ` Eli Zaretskii
2012-11-04 17:35 ` Dani Moncayo
2012-11-04 18:23 ` Eli Zaretskii
2012-11-04 19:10 ` Dani Moncayo
2012-11-04 19:39 ` Eli Zaretskii
2012-11-04 20:01 ` Dani Moncayo
2012-11-05 11:07 ` Richard Stallman
2012-11-05 12:25 ` Dani Moncayo
2012-11-05 14:56 ` Nix
2012-11-05 15:39 ` Teemu Likonen
2012-11-07 8:12 ` Harald Hanche-Olsen
2012-11-13 9:05 ` Bastien
2012-11-13 17:05 ` Stefan Monnier
2012-11-05 3:29 ` Stephen J. Turnbull
2012-11-05 7:27 ` Dani Moncayo
2012-11-05 12:44 ` Jambunathan K
2012-11-05 2:44 ` Stefan Monnier
2012-11-05 7:24 ` Dani Moncayo
2012-11-05 23:32 ` Stefan Monnier
2012-11-06 21:29 ` Daniel Hackney
2012-11-05 11:06 ` Richard Stallman
2012-11-05 15:00 ` Nix
2012-11-06 1:25 ` Stephen J. Turnbull
2012-11-06 17:24 ` Adrian Robert
2012-11-06 17:36 ` Eli Zaretskii
2012-11-06 17:50 ` Drew Adams
2012-11-06 19:14 ` John Yates
2012-11-05 18:05 ` Daniel Hackney
2012-11-06 1:53 ` Stephen J. Turnbull
2012-11-07 16:31 ` Nix
2012-11-08 1:49 ` Stefan Monnier
2012-11-08 17:33 ` Nix
2012-11-08 18:14 ` Eli Barzilay
2012-11-08 18:18 ` Nix
2012-11-08 18:39 ` Eli Barzilay
2012-11-08 18:39 ` Stefan Monnier
2012-11-09 9:50 ` martin rudalics
2012-11-09 14:18 ` Stefan Monnier
2012-11-08 18:40 ` Eli Zaretskii
2012-11-08 18:48 ` Juanma Barranquero
2012-11-08 19:29 ` Eli Zaretskii
2012-11-09 2:52 ` Richard Stallman
2012-11-09 7:35 ` Eli Zaretskii
2012-11-09 14:20 ` Nix
2012-11-09 14:56 ` Eli Zaretskii
2012-11-09 20:24 ` Nix
2012-11-10 11:09 ` martin rudalics
2012-11-10 11:40 ` Eli Zaretskii
2012-11-10 14:11 ` martin rudalics
2012-11-10 0:13 ` Richard Stallman
2012-11-10 7:42 ` Eli Zaretskii
2012-11-10 11:09 ` martin rudalics
2012-11-10 11:45 ` Eli Zaretskii
2012-11-10 11:48 ` Nix
2012-11-10 14:38 ` Eli Zaretskii
2012-11-10 14:47 ` Nix
2012-11-10 14:10 ` martin rudalics
2012-11-10 14:49 ` Eli Zaretskii
2012-11-10 18:50 ` martin rudalics [this message]
2012-11-10 19:09 ` Eli Zaretskii
2012-11-10 11:10 ` martin rudalics
2012-11-10 11:46 ` Eli Zaretskii
2012-11-10 14:12 ` martin rudalics
2012-11-09 9:51 ` martin rudalics
2012-11-09 14:19 ` Stefan Monnier
2012-11-10 11:05 ` martin rudalics
2012-11-08 7:18 ` Stephen J. Turnbull
2012-11-08 11:12 ` Stephen Leake
2012-11-08 15:43 ` Drew Adams
2012-11-08 17:35 ` Nix
-- strict thread matches above, loose matches on Subject: below --
2012-11-06 17:55 Dmitry Gutov
2012-11-07 0:53 ` Richard Stallman
2012-11-07 15:17 ` Drew Adams
2012-11-07 16:23 ` Eli Zaretskii
2012-11-07 18:03 ` Drew Adams
2012-11-07 18:34 ` Eli Zaretskii
2012-11-07 21:00 ` Drew Adams
2012-11-07 21:17 ` Eli Zaretskii
2012-11-08 22:18 ` Daniel Hackney
2012-11-07 21:12 ` Mathias Dahl
2012-11-07 21:41 ` Dmitry Gutov
2012-11-08 19:26 ` Bruce Korb
2012-11-13 9:07 ` Bastien
[not found] <201211080338.qA83c7NY006393@winooski.ccs.neu.edu>
[not found] ` <20635.16010.769769.433949@winooski.ccs.neu.edu>
2012-11-08 16:48 ` Stefan Monnier
2012-11-09 9:50 ` martin rudalics
2012-11-09 14:17 ` Stefan Monnier
2012-11-09 15:27 ` Eli Barzilay
2012-11-10 11:05 ` martin rudalics
2012-11-10 11:38 ` Eli Zaretskii
2012-11-10 14:09 ` martin rudalics
2012-11-10 14:40 ` Eli Zaretskii
2012-11-10 18:49 ` martin rudalics
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=509EA1DE.5060105@gmx.at \
--to=rudalics@gmx.at \
--cc=dan@haxney.org \
--cc=dmoncayo@gmail.com \
--cc=eli@barzilay.org \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=monnier@iro.umontreal.ca \
--cc=nix@esperi.org.uk \
--cc=rms@gnu.org \
--cc=stephen@xemacs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.