[comp.sys.sun] Warping mouse cursors

barnett@uunet.uu.net (Bruce G. Barnett) (12/30/88)

I am surprised how many people are against "warping" mouse cursors with an
almost religious zeal. I prefer to examine each individual case before
making judgement. Here are two examples where I believe that "warping" is
the Right Thing.

In SunOS 4.0, there is a new alerts package. When a Textedit window is
killed, the alert box appears in the center of the screen, and the mouse
cursor is "warped" to be positioned on the button representing the most
common choice. After clicking one of the choices, the mouse goes back to
the previous position.

Unfortunately, there is a known bug with color monitors.  If you move the
cursor outside of the alert box, it disappears, and you may not be able to
find it again. There is a work-around, using the keyboard equivalents:
Return will select the button marked with the darker outline, Stop (L1)
will cancel the alert.

The other common problem with the new alert package is that people are
accustomed to the old style, and move the mouse in anticipation of the
alert box. If the mouse is moving when the alert box comes up, the cursor
can disappear, and you verbally abuse your workstation, Sun, warping
cursors, etc. :-)

Once you break yourself of the habits you learned with the 3.X package, I
believe you will find the new package is much more efficient. Here is an
example.

Create a dozen Textedit windows, and position the icons along the side of
the screen. Now quit each one.

With the 3.X package, you have to keep moving your mouse to the center of
the screen, wait for the alert box to appear, move the mouse to the
appropriate position, click the mouse, and move the mouse back to the
position it was beforehand.

[[ On my 3.2 system, I get a box in the middle of the screen that says
"Press the left button to confirm Quit..."  I don't have to move the mouse
at all.  Granted, this approach has its problems, but you can't have an
alert box style confirmer without either alot of mouse motion or mouse
"warping".  --wnl ]]

With the 4.0 package, you can CONFIRM THE ACTION BEFORE THE ALERT BOX
APPEARS. And since the mouse is warped back to the original location, it
is easy to quit a row of Textedit windows, without constantly moving your
mouse to the center of the screen, and back to the original location. I
hated this under 3.X, and find the mouse warping in 4.0 friendly and
productive.

[[ So I quit this textedit window and confirm the quit before the alert
box shows up.  Then I start moving the mouse toward the mailtool icon to
read some mail that just came in.  While I am moving the mouse, will it
jump halfway across the screen, moves a bit, then jump back?  Or is it
smart enough to say "already confirmed---no warping needed"?  --wnl ]]

The other example of warping that I believe is right is with the new
scrollbars of Open Look. A very common operation is scrolling through
Text. In SunView, the small arrow boxes have to be used to move a page
forward. The equivalent "mouse-sensitive" section in Open Look is much
larger, and easier to find with the corner of your eye.  If the "elevator"
was at the top of the cable, you can position the mouse anywhere on the
cable below to page forward.

Now suppose you were browsing through a document, and the elevator moved
under the current position of the mouse. Open Look warps the mouse out of
the way so you can continue browsing until you reach the end of the
document. You don't have to look at the scrollbar until you reach the end
of the text.

[[ I would contend that the elevator is poorly designed if it needs
warping to make it work correctly.  What's wrong with a stationary button
that scrolls forward and another that scrolls backward (buttons that are
easier to find than SunView's, that is)?  --wnl ]]

Without mouse warping, your mode of browsing would suddently change when
the elevator moved under the mouse. You would have to move your eyes from
the text and see why the mouse click doesn't cause the text to page
forward. You would have to reposition the mouse and keep doing this each
time the elevator moves under the mouse.

Open Look also warps the mouse when moving forward and backward one line
at a time. Again, the benefit is that the function can be repeated in an
effecient manner without surprises.

I think that is the point. Warping the mouse isn't necessarily bad.
Causing unexpected changes and surprises is what should be avoided.  And
in the cases above, the sudden change of the mouse location is not
surprising and in fact greatly improves productivity.

	Bruce G. Barnett 	barnett@ge-crd.ARPA, barnett@steinmetz.ge.com
				uunet!steinmetz!barnett

barnett@uunet.uu.net (Bruce Barnett) (01/11/89)

Ye Moderator says.
>On my 3.2 system.....

Yup. Sorry for the mistake. I've been working too hard. Is my boss reading
this?

Bill also says:

>So I quit this textedit window and confirm the quit before the alert
>box shows up.  Then I start moving the mouse toward the mailtool icon to
>read some mail that just came in.  While I am moving the mouse, will it
>jump halfway across the screen, moves a bit, then jump back?  Or is it
>smart enough to say "already confirmed---no warping needed"?

If you click the left mouse button before you move the mouse, which
admittedly must be learned, it warps to the alert box, and warps back
right away. If you move the mouse after performing an operation that
generates an alert, you will be moving it relative to the warped mouse
position, which is where the trouble lies - it ends up in an unexpected
position.  This is aggravating if you didn't expect an alert. Perhaps the
Alert package should warp the mouse to the dialog box, and prevent the
mouse from leaving the box until the alert is dismissed.  At this point,
the mouse is warped back to the original location.

As an aside, someone said the warping mouse cursor can be controlled by a user
preference option.

[[ I would also like to be able to ignore the alert if I want to.  I don't
know if I can currently, but your scheme of limiting the cursor motion
would certainly preclude that.  --wnl ]]

Re: warping with the Open Look scrollbar:
>I would contend that the elevator is poorly designed if it needs
>warping to make it work correctly.  What's wrong with a stationary button
>that scrolls forward and another that scrolls backward (buttons that are
>easier to find than SunView's, that is)?

SunView's current scrollbars are not intuitive. Remember that a consistent
user interface is important to new users. The function of the left mouse
button is to poke at devices/buttons. (This image comes to mind of a
primative human poking at some alien device with his/her forefinger :-)

I would say the most common actions a scrollbar should provide is:

	go to beginning 
	go to end
	go forward one line (can be repeated)
	go back one line (can be repeated)
	go forward one screen (can be repeated)
	go back one screen (can be repeated)
	go to a particular spot.

If you look at sunview, the only "intuitive" action is scrolling down one
line, which can be repeated. The rest of the operations must be learned by
trial and error, or by a manual or tutorial.

Now if you look at Open Look, you will see that ALL of these operations
can be performed with the left mouse button.  Only two functions are in
static locations. the rest of the "buttons" move with the "elevator".

Now if you had to provide ALL of these options from the left mouse button
without warping the cursor, you would have to make room for three buttons
at each end. Then how would you know intuitively which function each
button had?

Perhaps someone can come up with a better design.....

Also, since the mouse is only warped within the scrollbar area, it isn't
TOO disturbing. IMHO.  [[ Admittedly, it is the least offensive example of
mouse warping that I have seen.  In fact, it's kind of clever.  --wnl ]]

Bruce G. Barnett 	barnett@ge-crd.ARPA, barnett@steinmetz.ge.com
			uunet!steinmetz!barnett