← Back to team overview

unity-design team mailing list archive

Variable rate scrollbars for continuous reading

 

Open up a very large PDF document (or webpage) e.g. emacs 600 page long pdf [1]

User asked to:
1) Scroll to half way.
2) Scroll to view next three paragraphs at the bottom of the page.

Accelerate mouse-wheel:
1) fast scroll wheel action
2) slow scroll wheel action

Touch UI:
1) rapid flick with a finger
2) gentle slide with a finger

Keyboard:
1) page down, hold
2) arrow key

So far so good.

But what about regular notebooks with synaptic touchpads? or using
just a mouse pointer?

on a touchpad: two finger scrolling is slow (can't easy scroll large
chunks of the document)
mouse pointer: drag the scrollbar or have to click repeatedly the
arrow button at the top/bottom of the scrollbars

Both of these are IMHO frustrating. Is there a solution to this problem?

Examples:

Docks (various implementation). if you have loads of icons they are
simply small and fill the whole width, but you generally have a
magnification of a few icons around the one your are currently
hovering over. This way you quickly get your mouse-pointer to the area
of interest (eg. middle of the doc) that section gets magnified and
you can move your cursor to precisely select the desired near-by icon.

Two scrollbars (full & current section): e.g. [2] here you have two
timelines top is moths, bottom one is days and the dead centre is the
current date. If you drag bottom one you get the "precission" scroll,
and if you drag top one you get "rapid" scroll.

Here is an idea [3] for using orthogonal axis to define "precission" scroll:
 * click and drag downwards/upwards -> rapid scroll
 * click, hold drag to the left off-the scrollbar, drag up-down ->
precission scroll

really using the orthogonal axis to define acceleration as in mouse-wheel.

Are there any other ideas? Have any of them been implemented?
Personally want a Gtk implementation =)

Now with this continious rendering problem there is another issue of
"jumping scroobar" which can be observed on Google Reader. This one is
related to delayed loading / rendering.

By default google reader loads a dozen of articles as you scroll down
it loads more articles and your scrollbar jumps upwards since the
whole document became larger. In this case the expected behaviour is
reverse, by default precission scroll is required, with visual
indication of where-abouts you are in the global document length and
ability to switch to rapid scrolling (which is not useful at all in
dynamically loadable documents). No clue how to fix this one.

[1] http://www.gnu.org/software/emacs/manual/emacs.pdf
[2] http://www.suse.de/~coolo/opensuse_11.3/
[3] http://www.halfbakery.com/idea/Variable_20Rate_20Scroll_20Bar

ps. Hope this is appropriate for ayatana discussion.



Follow ups