unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: help-gnu-emacs@gnu.org
Subject: Re: Make scroll-{up, down} move point to {start, end} of newly visible text
Date: Fri, 11 Aug 2023 14:30:11 +0300	[thread overview]
Message-ID: <838rahhl4s.fsf@gnu.org> (raw)
In-Reply-To: <87zg2yu600.fsf@dataswamp.org> (message from Emanuel Berg on Thu,  10 Aug 2023 20:06:23 +0200)

> From: Emanuel Berg <incal@dataswamp.org>
> Date: Thu, 10 Aug 2023 20:06:23 +0200
> 
> Eli Zaretskii wrote:
> 
> >>> I think your mental model of how scrolling works in Emacs
> >>> is not accurate. [...]
> >> 
> >> That can be helped,
> >> 
> >> (defun scroll-up-1 ()
> >>   (interactive)
> >>   (scroll-down 1) )
> >> 
> >> (defun scroll-down-1 ()
> >>   (interactive)
> >>   (scroll-up 1) )
> >
> > I asked what you thought happens in Emacs as part of the
> > call to scroll-down. If you think that function actually
> > scrolls the text in the window, then that's not what happens
> > in reality. The scrolling is performed as part of redisplay,
> > after scroll-up exits.
> 
> But it can still be controlled from Elisp. We would have
> another function around the scroll function, and that other
> function would be used instead. Normally it would just call
> the scroll function. Normally - but not always :)

We've lost context.  This sub-thread began when you said:

  If one can get the state of scrolling in a window in Elisp one
  could solve this in Elisp only since then one could write
  a new scroll function on top of the old, and what it would do
  is - based on that information - it would either scroll
  normally or not call the function at all, if scrolling was
  determined not to make any sense.

So now please explain what you mean by "the state of scrolling" and
how would you determine that "scrolling does not make any sense"?

My point is that "the state of scrolling" (at least my interpretation
of that) is only known when the scrolling was already done, by which
time it's too late to try to figure out whether "scrolling does not
make any sense".  That's because Lisp code doesn't compute how to
scroll the window, and thus doesn't know what would scrolling yield.
The actual scrolling is done by the display engine, in C code.



  reply	other threads:[~2023-08-11 11:30 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-31 20:18 Make scroll-{up, down} move point to {start, end} of newly visible text Spencer Baugh
2023-08-01  1:26 ` [External] : " Drew Adams
2023-08-01 11:44   ` hw
2023-08-01  5:11 ` Michael Heerdegen
2023-08-01 14:49   ` [External] : " Drew Adams
2023-08-01 11:28 ` hw
2023-08-01 14:45   ` Spencer Baugh
2023-08-01 16:05     ` hw
2023-08-01 12:42 ` Eli Zaretskii
2023-08-01 14:50   ` Spencer Baugh
2023-08-01 15:44     ` Eli Zaretskii
2023-08-01 18:09       ` Spencer Baugh
2023-08-01 18:35         ` Eli Zaretskii
2023-08-01 18:43           ` Spencer Baugh
2023-08-03 19:58             ` Spencer Baugh
2023-08-04  5:31               ` Eli Zaretskii
2023-08-06 20:02                 ` Emanuel Berg
2023-08-08 12:41                   ` Eli Zaretskii
2023-08-09 20:59                     ` Emanuel Berg
2023-08-10 17:33                       ` Eli Zaretskii
2023-08-10 18:06                         ` Emanuel Berg
2023-08-11 11:30                           ` Eli Zaretskii [this message]
2023-08-11 12:19                             ` Emanuel Berg
2023-08-11 18:40                               ` Eli Zaretskii
2023-08-11 19:00                                 ` Emanuel Berg
2023-08-12 13:30                                   ` Eli Zaretskii
2023-08-11 19:04                                 ` Emanuel Berg
2023-08-12 13:31                                   ` Eli Zaretskii
2023-08-12 15:35                                     ` Emanuel Berg
2023-08-13 13:23                                       ` Eli Zaretskii
2023-08-20  3:38                                         ` Emanuel Berg
2023-08-22 12:29                                           ` Eli Zaretskii
2023-08-22 19:41                                             ` Emanuel Berg
2023-08-24  4:43                                               ` Eli Zaretskii
2023-08-24  5:13                                                 ` Emanuel Berg
2023-08-16 16:20   ` Spencer Baugh
2023-08-16 16:53     ` Eli Zaretskii
2023-08-16 17:55       ` Spencer Baugh
2023-08-16 18:33         ` Eli Zaretskii
2023-08-16 20:32           ` Spencer Baugh
2023-08-17  5:18             ` Eli Zaretskii
2023-08-17 12:19               ` Spencer Baugh
2023-08-17 12:30                 ` Eli Zaretskii
2023-08-02 10:06 ` Emanuel Berg

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=838rahhl4s.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=help-gnu-emacs@gnu.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.
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).