[comp.windows.x] Summary of warping discussion

josh@mit-vax.LCS.MIT.EDU (Joshua Marantz) (06/30/88)

Some interesting points have been brought up about the morality of warping
the cursor.  The problems with warping the cursor include:

1.	Some pointing devices, such as tablets, report absolute position.
	Some of these tablets can be treated like mice because they
	report positional movement.  With others, this won't work so well.
2.	Principle of least astonishment:  the user may not be expecting
	the mouse to be moved, and may be in the middle of another mouse
	operation when the software yanks the mouse out from under him
	and puts it somewhere.
3.	Application software sometimes makes bad assumptions about what
	the user is doing.  This was illustrated by the example on
	the Apollo DN computer where the user had a few icons for
	help files, and wanted to expand them all.  But after he expanded
	each one, the computer would move the cursor to the last line
	in the help file.
4.	The mouse must be moved within some physical constraint, such
	as an optical pad or a limited desktop.  When the mouse is
	warped across the screen, the user may have to physically
	pick up the mouse and move it to the other edge of the desktop
	before he can usefully move the pointer 
5.	An application that moves the cursor may break the user's
	perception that he has control of it.
6.	Several arguments about focus mangement were made, but they
	seem to apply mainly to window managers moving the mouse in
	and out of top level windows.

While all these are valid objections, I think that objections 2, 3,
and 5 can all be addressed by following a simple guideline:

	Applications should only only warp the cursor in direct response
	to a user's request to do so.

The simplest example is a system that binds the keyboard arrow keys to
move the pointer in the appropriate direction.  This is useful in
drawing packages where it is sometimes difficult to precisely position
objects freehand with the mouse.  The system would warp the cursor in
direct response to a user request.  The user should not be
"astonished" that the pointer was moved for him, nor should his mental
model of pointer control be broken.  Since the sole purpose of the
keyboard arrow keys is to move the pointer, the application should
have every right to assume it knows what the user is doing.

The trouble starts when applications link two actions together.  For
example, expanding an icon and moving the pointer to a predefined
position in the new window.

Between the arrow-key example and the move-mouse-to-new-window
example, there are a continuum of intermediate examples where a
user-invoked function should or should not have an associated mouse
movement.  Where you draw the line is probably a matter of personal
taste.

One thing is certain.  Like most user-interface tools, pointer warping
is a technique that must be used carefully.  The only way to determine
if its usage is appropriate for a given situation is to try it out on
unbiased users.  I don't think the objections raised are serious
enough to condemn the technique altogether.

-Joshua Marantz
Viewlogic Systems, Inc.

eichin@ATHENA.MIT.EDU (Mark W. Eichin) (07/01/88)

JM>From: mit-vax!josh@bloom-beacon.mit.edu  (Joshua Marantz)
JM>Organization: Viewlogic Systems, Inc.
JM>The simplest example is a system that binds the keyboard arrow keys to
JM>move the pointer in the appropriate direction.  This is useful in
JM>drawing packages where it is sometimes difficult to precisely position
JM>objects freehand with the mouse.
JM>-Joshua Marantz
JM>Viewlogic Systems, Inc.

Has anyone implemented such, at the window manager level? I know it
sounds like a step backwards, but I'd be interested in seeing
something (preferably an isolated application) that would make some
keys into mouse-motion keys, to allow navigating solely from the
keyboard. It'd be easy to do for a single application, but I want it
for *all* windows. It isn't clear to me where to start on this...
				Mark Eichin
			<eichin@athena.mit.edu>
		SIPB Member & Project Athena ``Watchmaker''