From: Owen Taylor <otaylor@redhat.com>
Cc: emacs-devel@gnu.org
Subject: Re: Gtk scrollbar: thumb too short
Date: 01 Apr 2003 12:48:48 -0500 [thread overview]
Message-ID: <1049219327.16663.81.camel@localhost.localdomain> (raw)
In-Reply-To: <200304010028.h310Sm210574@eel.dms.auburn.edu>
On Mon, 2003-03-31 at 19:28, Luc Teirlinck wrote:
> Owen Taylor wrote:
>
> While you may think of the scrollbar as a miniature view of the
> document, it is also presented to the user as a physical control,
> with obvious limits as to how far the scrollbar can be dragged.
>
> I believe that this all boils down to the difference between (1) a
> character and (2) a pixel based philosophy. For efficiency reasons,
> Emacs has no choice but to adopt (1). Given that, it should do it
> consistently, otherwise things would become unpredictable.
>
> For (1) the thumb indicates the percentage of total "content"
> contained in the part of the buffer that is represented above, on and
> below the screen. I believe that for (2) the thumb indicates how much
> more upward and downward scrolling is possible, regardless of how much
> extra content that is going to bring into view.
>
> Start with an empty buffer in a window that has room for 60 lines of
> regular character size and type:
>
> a NEWLINE b
>
> I believe that according to (1) the thumb should still cover the
> entire length of the scrollbar, but according to (2), it should only
> cover the top 60/61 of the scrollbar. That is because there is now
> one extra screen line we can scroll down to and according to the
> visually based philosophy of (2), that matters. According to the
> character based philosophy of (1), there are no extra characters that
> can be brought into view, even though extra scrolling is possible.
>
> Now scroll the second line to the top. One screen line, two
> characters, scrolled of the screen. We still have one third of the
> characters on the screen, so for (1), the thumb should occupy the
> bottom one third. This is exactly what happens for the native
> scrollbar. (I do not see why the knob should "pop out of the trough".
> The overscrolled piece contains no characters, so according to (1) its
> size is 0, it does not really "exist", it is an optical illusion.)
> For (2), I believe the thumb should occupy the bottom 60/61 of the
> scrollbar. Actually, I believe that for (2) mere scrolling should not
> change the size of the thumb.
>
> I believe that it is correct for the default behavior of GTK to be
> pixel based, since it is more "intuitive" and covers the needs of more
> applications. I believe that the question is whether somehow one
> could increase the "customizability" of the GTK scrollbar, to make it
> possible, to have it, within Emacs, better approximate the native
> scrollbar, without negatively affecting its interaction with
> applications that want a pixel based behavior. Alternatively, people
> who prefer the consistently character based behavior (compared, not
> with a consistently pixel based philosophy, but with some inconsistent
> and unpredictable mixture) could use the native scrollbar (as I do).
While with your character based philosophy, you've described a perfectly
consistent visual model, I don't think it corresponds to workable
control for manipulation with the mouse.
This is most obvious in the case where you run into the minimum
scrollbar size. In the theme I'm using, the minimum scrollbar
size is 30 pixels.
So, all scroll positions that involve the first line being within
3% (30/1000) of the end of the buffer map into the exact same thumb
appearance. Overscrolling a buffer of more than a few thousand
lines with the mouse would not be possible.
But I'd say that you basically have the same problem even for
small buffers. If the scrollbar occupies the entire scrollbar
trough, dragging it downward doesn't correspond to any physical
motion of a scrollbar thumb. If you want that mouse action
to be possible, I'd argue that you really shouldn't use a control
that looks like it has real physical presence - something like
the Emacs native scrollbar is more correct.
Regards,
Owen
next prev parent reply other threads:[~2003-04-01 17:48 UTC|newest]
Thread overview: 143+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-03-25 14:51 Gtk scrollbar: thumb too short Kai Großjohann
2003-03-25 18:54 ` Jan D.
2003-03-25 19:55 ` Stefan Monnier
2003-03-26 18:26 ` Jan D.
2003-03-26 19:07 ` Stefan Monnier
2003-03-27 3:29 ` Richard Stallman
2003-03-27 14:51 ` Stefan Monnier
2003-03-27 15:48 ` Owen Taylor
2003-03-27 16:30 ` Stefan Monnier
2003-03-27 21:07 ` Owen Taylor
2003-03-27 21:41 ` Stefan Monnier
2003-03-27 21:42 ` Luc Teirlinck
2003-03-27 21:41 ` Owen Taylor
2003-03-27 22:18 ` Luc Teirlinck
2003-03-27 22:46 ` Jody Goldberg
2003-03-28 2:15 ` Luc Teirlinck
2003-03-28 4:28 ` Owen Taylor
2003-03-28 6:07 ` Luc Teirlinck
2003-03-29 18:38 ` Richard Stallman
2003-03-28 13:35 ` Stefan Monnier
2003-03-28 13:55 ` Luc Teirlinck
2003-03-27 16:50 ` Andreas Schwab
2003-03-27 18:27 ` Jan D.
2003-03-27 20:54 ` Owen Taylor
2003-03-28 1:48 ` Miles Bader
2003-03-28 1:42 ` Miles Bader
2003-03-28 1:51 ` Miles Bader
2003-03-28 15:04 ` Kim F. Storm
[not found] ` <m21y0rruj4.fsf@primate.xs4all.nl>
2003-03-28 23:57 ` Kim F. Storm
[not found] ` <m2wuijqdu3.fsf@primate.xs4all.nl>
2003-03-29 1:26 ` Kim F. Storm
2003-03-31 7:52 ` Miles Bader
2003-03-31 11:04 ` Kim F. Storm
2003-03-28 12:43 ` Robert J. Chassell
2003-03-28 13:34 ` Luc Teirlinck
2003-03-28 15:11 ` Robert J. Chassell
2003-03-28 15:50 ` Luc Teirlinck
2003-03-28 13:38 ` Stefan Monnier
2003-03-28 16:18 ` Robert J. Chassell
2003-03-28 16:49 ` Stefan Monnier
2003-03-29 18:39 ` Richard Stallman
2003-03-29 18:43 ` Stefan Monnier
2003-03-28 15:20 ` Richard Stallman
2003-03-28 15:44 ` Owen Taylor
2003-03-28 18:25 ` Jan D.
2003-03-27 18:41 ` Jan D.
2003-03-28 15:21 ` Richard Stallman
2003-03-28 17:27 ` Owen Taylor
2003-03-30 19:24 ` Richard Stallman
2003-03-31 18:12 ` Owen Taylor
2003-03-31 22:06 ` Luc Teirlinck
2003-03-31 22:16 ` Owen Taylor
2003-03-31 22:27 ` Luc Teirlinck
2003-03-31 23:29 ` Luc Teirlinck
2003-03-31 22:23 ` Robert J. Chassell
2003-04-01 0:28 ` Luc Teirlinck
2003-04-01 17:48 ` Owen Taylor [this message]
2003-04-02 1:39 ` Miles Bader
2003-04-02 2:30 ` Luc Teirlinck
2003-04-01 9:38 ` Richard Stallman
2003-04-01 17:26 ` Owen Taylor
2003-04-02 1:33 ` Miles Bader
2003-04-02 3:30 ` Luc Teirlinck
2003-04-02 3:55 ` Miles Bader
2003-04-02 4:29 ` Luc Teirlinck
2003-04-02 4:42 ` Miles Bader
2003-04-02 11:07 ` Kai Großjohann
2003-04-02 13:52 ` Luc Teirlinck
2003-04-02 13:11 ` Kai Großjohann
2003-04-02 14:42 ` Luc Teirlinck
2003-04-02 14:03 ` Kai Großjohann
2003-04-03 10:38 ` Richard Stallman
2003-04-07 15:35 ` Owen Taylor
2003-04-07 16:57 ` Stefan Monnier
2003-04-07 18:30 ` Owen Taylor
2003-04-07 18:38 ` Stefan Monnier
2003-04-07 18:57 ` Owen Taylor
2003-04-07 19:02 ` Stefan Monnier
2003-04-07 19:21 ` Owen Taylor
2003-04-07 19:30 ` Stefan Monnier
2003-04-08 2:30 ` Richard Stallman
2003-04-08 14:56 ` Owen Taylor
2003-04-08 23:36 ` Miles Bader
2003-04-09 1:58 ` Richard Stallman
2003-04-09 14:46 ` Owen Taylor
2003-04-10 6:22 ` Richard Stallman
2003-04-10 6:48 ` Miles Bader
2003-04-11 8:51 ` Richard Stallman
2003-04-10 17:37 ` Jan D.
2003-04-11 8:51 ` Richard Stallman
2003-04-11 12:26 ` Luc Teirlinck
2003-04-11 12:53 ` Jan D.
2003-04-11 13:08 ` Luc Teirlinck
2003-04-11 14:02 ` Kai Großjohann
2003-04-11 14:28 ` Stefan Monnier
2003-04-11 15:33 ` Kai Großjohann
2003-04-12 3:02 ` Luc Teirlinck
2003-04-12 8:56 ` Kai Großjohann
2003-04-12 11:58 ` Miles Bader
2003-04-12 14:56 ` Luc Teirlinck
2003-04-12 14:58 ` Kai Großjohann
2003-04-13 11:22 ` Richard Stallman
2003-04-15 1:24 ` Luc Teirlinck
2003-04-15 1:31 ` Miles Bader
2003-04-15 1:42 ` Luc Teirlinck
2003-04-15 7:18 ` Kai Großjohann
2003-04-15 13:01 ` Luc Teirlinck
2003-04-16 4:39 ` Richard Stallman
2003-04-17 3:59 ` Luc Teirlinck
2003-04-17 4:09 ` Luc Teirlinck
2003-04-11 15:23 ` Andreas Schwab
2003-04-11 16:30 ` Kai Großjohann
2003-04-11 16:55 ` Robert J. Chassell
2003-04-11 20:42 ` Kai Großjohann
2003-04-11 21:33 ` Robert J. Chassell
2003-04-12 0:05 ` Miles Bader
2003-04-12 0:47 ` Luc Teirlinck
2003-04-12 2:11 ` Miles Bader
2003-04-11 19:09 ` NEWS and invisible text Stefan Monnier
2003-04-14 23:09 ` Kevin Rodgers
2003-04-21 0:59 ` Richard Stallman
2003-04-11 16:36 ` Gtk scrollbar: thumb too short Robert J. Chassell
2003-04-11 17:07 ` Kai Großjohann
2003-04-11 17:46 ` Luc Teirlinck
2003-04-11 21:13 ` Robert J. Chassell
2003-04-12 17:07 ` Richard Stallman
2003-04-11 13:12 ` Luc Teirlinck
2003-04-11 16:13 ` Robert J. Chassell
2003-04-12 17:07 ` Richard Stallman
2003-04-10 17:33 ` Jan D.
2003-04-02 12:56 ` Robert J. Chassell
2003-04-02 14:07 ` Stefan Monnier
2003-04-03 1:34 ` Miles Bader
2003-04-03 15:35 ` Stefan Monnier
2003-04-02 9:19 ` Richard Stallman
2003-03-28 18:12 ` Jan D.
2003-03-28 22:25 ` Robert J. Chassell
2003-03-28 22:35 ` Robert J. Chassell
2003-03-29 17:06 ` Jan D.
2003-03-26 16:47 ` Richard Stallman
2003-03-26 18:32 ` Jan D.
2003-03-27 19:04 ` Richard Stallman
2003-04-01 19:29 ` Kai Großjohann
[not found] <200303271914.h2RJEdbL026474@stubby.bodenonline.com>
[not found] ` <3E834774.6080604@swipnet.se>
[not found] ` <200303271904.h2RJ48b0029268@rum.cs.yale.edu>
2003-03-27 23:23 ` Stefan Monnier
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=1049219327.16663.81.camel@localhost.localdomain \
--to=otaylor@redhat.com \
--cc=emacs-devel@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.
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.