unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: esabof@gmail.com
Cc: 18923@debbugs.gnu.org
Subject: bug#18923: Alternative scrolling model
Date: Mon, 03 Nov 2014 05:45:30 +0200	[thread overview]
Message-ID: <83sii1vtet.fsf@gnu.org> (raw)
In-Reply-To: <83wq7dwgdf.fsf@gnu.org>

> Date: Sun, 02 Nov 2014 21:29:32 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: 18923@debbugs.gnu.org
> 
> > > I meant call window-body-height with PIXELWISE non-nil.  Then the
> > > return value doesn't depend on what is displayed, it just gives you
> > > the height of the text area in pixels.  Subtracting from that the
> > > pixel coordinates of point returned by pos-visible-in-window-p or
> > > posn-at-point will give you how many pixels are there to the top and
> > > bottom of the window.  This should eliminate the need to count pixels
> > > by moving one screen line at a time via vertical-motion, which is less
> > > efficient, I think.
> > 
> > I'm not sure how knowing the distance of a point to the bottom of the window would benefit me, but indeed I could bulk-measure several lines in some cases.
> 
> IMO the most important case is when you need to scroll almost the full
> window, in which case the pixel size of the window is the main piece
> of information.

In addition, you could change st-move to work in pixels instead of
lines.  Then you could use posn-at-x-y inside st-move to find the
position at a given Y offset from the current window-start, and move
the new window-start to that position.  This should eliminate the need
to use vertical-motion in st-move even if you need to scroll by one or
a few screen lines.  The conversion of the number of lines to pixels
is straightforward using default-line-height.





  reply	other threads:[~2014-11-03  3:45 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-02  1:15 bug#18923: Alternative scrolling model E Sabof
     [not found] ` <jwv61ey5qfb.fsf-monnier+emacsbugs@gnu.org>
     [not found]   ` <87vbmy9wdx.fsf@gmail.com>
2014-11-02  2:31     ` E Sabof
2014-11-02 15:16       ` Eli Zaretskii
2014-11-02 18:25         ` E Sabof
2014-11-02 18:36           ` Eli Zaretskii
     [not found]     ` <jwvioiy416g.fsf-monnier+emacsbugs@gnu.org>
     [not found]       ` <87sii1ahy9.fsf@gmail.com>
     [not found]         ` <jwvppd538tu.fsf-monnier+emacsbugs@gnu.org>
2014-11-02 23:10           ` E Sabof
2014-11-03  2:35             ` Stefan Monnier
2014-11-03 16:03               ` Eli Zaretskii
2014-11-03 19:02                 ` E Sabof
2014-11-02 15:14 ` Eli Zaretskii
2014-11-02 15:56   ` Stefan Monnier
2014-11-02 16:06     ` Eli Zaretskii
2014-11-02 16:21   ` E Sabof
2014-11-02 16:31     ` Eli Zaretskii
2014-11-02 17:43       ` E Sabof
2014-11-02 18:22         ` Eli Zaretskii
2014-11-02 19:09           ` E Sabof
2014-11-02 19:29             ` Eli Zaretskii
2014-11-03  3:45               ` Eli Zaretskii [this message]
2019-11-04  9:14 ` Stefan Kangas
2022-04-22 12:16 ` Lars Ingebrigtsen

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=83sii1vtet.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=18923@debbugs.gnu.org \
    --cc=esabof@gmail.com \
    /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 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).