More Commentary on Microsoft Scrollbar-Dragging Behavior

Edward Avis and I corresponded a bit after he wrote to point out how some systems make not only the scrollbar ignore one direction of motion, but the mouse pointer as well! Here is our discussion:


From: Karl Fogel <kfogel@galois.collab.net>
To: Edward Avis <epa98@doc.ic.ac.uk>
Subject: Re: <http://www.red-bean.com/~kfogel/ms-scrollbar.html>
Date: 12 Nov 2000 08:02:17 -0600

Edward Avis <epa98@doc.ic.ac.uk> writes:
> You might like to know that on RISC OS, when you drag a scrollbar the
> mouse pointer is 'locked' into vertical or horizontal movement.  Thus
> there is no possible confusion from the pointer wandering off the
> scrollbar, not even what Microsoft would consider confusing.  As soon as
> you stop dragging the scrollbar, the mouse pointer is no longer locked.
> 
> I think this is the right way to do things - it makes the whole
> GUI feel more 'solid' and friendly.  But I haven't seen it in X - maybe
> there is no way for an X client to confine the mouse pointer to a
> certain direction of movement.  Perhaps because any such method would be
> open to abuse.  I would want to allow X clients to limit pointer
> movement to a line or shape, but only while a mouse button is held down
> over their window.  This could be useful in other areas, eg drawing
> packages.

I have to confess that this strikes me as a bad solution (though
certainly much better than the MS behavior).  Here's why:

Retaining the ability to move the mouse pointer horizontally while
scrolling vertically (or vice versa), but disconnecting that direction
of motion from the scrollbar so it doesn't affect anything, allows me
to have the pointer more or less where I want it in the document when
I stop scrolling.

This is a feature I use all the time in my browser, for example.  I
scroll vertically while *simultaneously* positioning the mouse over a
URL which my scrolling has made visible.

This trick is impossible when the software confines the pointer
itself, rather than merely confining its effects.

[But yes, you could implement pointer confinement in X.  The hooks are
there, though I'm relieved most X scrollbar code doesn't use them.]

Well, I seem to be in the habit of posting every email I get on this
topic and linking to it from the page in question :-).  May I do the
same with yours?  Slowly but surely the web page is approaching
Talmudic perfection...

-K


From: Edward Avis <epa98@doc.ic.ac.uk>
To: <kfogel@red-bean.com>
Subject: Re: <http://www.red-bean.com/~kfogel/ms-scrollbar.html>
Date: Mon, 13 Nov 2000 10:23:17 +0000 (GMT)

>>You might like to know that on RISC OS, when you drag a scrollbar the
>>mouse pointer is 'locked' into vertical or horizontal movement.

>Retaining the ability to move the mouse pointer horizontally while
>scrolling vertically (or vice versa), but disconnecting that direction
>of motion from the scrollbar so it doesn't affect anything, allows me
>to have the pointer more or less where I want it in the document when
>I stop scrolling.
>
>This is a feature I use all the time in my browser, for example.  I
>scroll vertically while *simultaneously* positioning the mouse over a
>URL which my scrolling has made visible.

I had never thought anyone would do that!

I still feel that 'locked' scrollbars would be a sensible default for
new users, although clearly some people would want to turn them off.

>Well, I seem to be in the habit of posting every email I get on this
>topic and linking to it from the page in question :-).  May I do the
>same with yours?

Of course :-)

-- 
Ed Avis
epa98@doc.ic.ac.uk


(Back to Karl Fogel's home page.)