Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!husc6!mit-eddie!mit-vax!josh
From: josh@mit-vax.LCS.MIT.EDU (Joshua Marantz)
Newsgroups: comp.windows.x
Subject: The morality of warping the cursor
Message-ID: <4390@mit-vax.LCS.MIT.EDU>
Date: 27 Jun 88 21:53:04 GMT
Organization: MIT LCS, Cambridge, MA
Lines: 48


There have been a couple of articles where people have stated
absolutely that warping the cursor is bad user interface policy; that
users should have exclusive control of the cursor at all times.

I am interested in why people feel this way.  I personally feel that
intelligent warping on the part of the application can greatly enhance
a user interface.  I say this with some trepidation because people on
this newsgroup occasionally flame and tar and feather people who have
ideas different then their own.

So I am looking for an enlightened discussion on the benefits and
pitfalls of carefully warping the cursor.

Obviously, one potential pitfall is if a program that you thought was
idle decides to suddenly wake up and warp the pointer, things could
get weird.  But if in the course of traversing a menu or drawing a
graphical object, the application moves the cursor to fall within an
area that it is constrained to stay, then this only speeds the user
interaction.

Imagine using Emacs, for example, if you had to move the cursor
manually below the mode line in order to type a Meta-X command.  Long
movements are easier with a mouse than a text cursor, but the concept
is the same.  The application knows what you are doing, and should
help you do it.  Naturally, the application has to be careful to avoid
making wrong assumptions about what it assumes the user is doing.

Another common application for pointer warping might be to have more
than one cursor, only one of which is attached to the mouse at one
time.  I did this recently for an interactive bezier spline program I
was fooling around with.  You got to adjust any of the four control
points by moving the mouse, and you switched control points by hitting
F1, F2, F3, or F4.  The mouse would jump to the control point you
wanted to adjust.  If the system didn't do this, then the mere act of
switching (say) from point #2 to point #3 would implicitly move point #3
to where point #2 was when you switched.

I would like to thank the X developers for giving me the power to do
what I felt was necessary, even if they personally thought it was the
wrong thing to do.

I hope this article stimulates some interesting discussion on this
subject.  I am also interested in other user interface topics, though
there may be a better group for that.  Any pointers (no pun intended)?

-Joshua Marantz
Viewlogic Systems, Inc.