proportional panning

David De La Harpe Golden david.delaharpe.golden at gmail.com
Sat May 23 11:24:31 PDT 2009


Panning's made a welcome return...

But it's "border-push" type panning. That means to scroll new sections
of the display into view you "push" against the border. Back in the
day, some amiga stuff instead used "proportional" panning to move the
viewport about the screen. Why would you want this?  "Pushing" against
a border means you need to push beyond where you want to click on to
bring whatever it is fully on-screen, then move back.  With the
proportional way, every viewport pointer position corresponds to a
particular point on the panning area. It allows rapid scrolling about
large panning areas, at cost of some precision.

You can sortof-nearly get a vaguely similar effect by using something like
xrandr --output DVI-I_1/analog --mode 800x600 --panning
1600x1200+0+0/1600x1200+0+0/400/300/400/300
- but it's noticeably nonuniform.

Anyway, it might be nice if one could say something like

xrandr --panning blah --panning-mode proportional
vs.
xrandr --panning blah --panning-mode borderpush

Just putting the idea out there, beyond "see the X.org source code"  I
don't presently know where to begin implementing it beyond rough
description...

(see http://harpegolden.net/misc/proppanning.pdf for illustration):

w_pa # width panning area
w_vp # width viewport
x_vp  # x coord of topleft of viewport relative to topleft of panning area.
x_m # x coord of mouse pointer relative to _viewport_

x_vp = (x_m * (w_pa - w_vp)) / w_vp

similar for ys + heights



More information about the xorg mailing list