josh@mit-vax.LCS.MIT.EDU (Joshua Marantz) (06/28/88)
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.
jee@teddy.UUCP (John E Elsbree) (06/28/88)
In article <4390@mit-vax.LCS.MIT.EDU> josh@mit-vax.LCS.MIT.EDU (Joshua Marantz) writes: > >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. This brings up a question that's been sitting in my mind for a while... Say your pointing device deals in absolute coordinates (a tablet, for example). What does it mean to warp the pointer? Sure, the cursor on the screen can be forced to a new position, but the tablet would immediately pull it back to its own absolute coordinates. Or do I misunderstand something? - John -- John E Elsbree /|\ GenRad, Inc. ...!mit-eddie!genrad!jee /_ _\ 300 Baker Avenue (617)369-4400, ext 2935 \ |\ Concord, MA 01742, USA (508)369-4400 (after July 16) \| \
jim@EXPO.LCS.MIT.EDU (Jim Fulton) (06/28/88)
For those who have netnews, this topic was recently discussed in comp.windows.misc as well. > 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. The usual reason given is the principle of least astonishment. Warping the pointer can disrupt the mental illusion that the cursor on the screen is directly tied to the pointer. By moving the cursor out from under the user, you run the risk of breaking hand-eye coordination. Also, some devices (such as absolute tablets) might refuse to be warped. > I personally feel that > intelligent warping on the part of the application can greatly enhance > a user interface. Intelligent is the operative word. You have to be as unobtrusive as possible so as not to interfere with the user's "kinetic memory" of where things are. As people become familar with an interface, they build up dexterity that helps them identify and acquire targets quickly, without much thought. This is particularly true if delays in the interface allow a user to provide input faster than it is consumed. Some people have advocated doing relative warping followed as soon as possible by restoring the pointer to its previous position to prevent such "mouse-ahead" from being lost. > 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. Even warping the pointer in this case would be bad since it assumes pointer-driven input focus (if the M-X window were separate from the main editing portion). It is important to distinguish use of the pointer by the window manager (e.g. selecting an "active" window) from use of the pointer by the application (e.g. drawing, selecting objects, etc.). The application should never warp the pointer to accomplish the former task. Instead, if the editor's top level window already has the focus, it could then set the focus to the M-X subwindow as described in the Inter-Client Communications Conventions Manual. Navigation is definitely one of the thorniest issues in building user interfaces. There are times when warping the pointer does make a user interface more intuitive. However, it has to be done with care so as not to break the user's sense of control or make presumptions about the type of input focus management being used. Jim Fulton MIT X Consortium
jim@EXPO.LCS.MIT.EDU (Jim Fulton) (06/29/88)
> So I don't see any reason why a tablet > should refuse to be warped. The simple answer is "because they don't want to." A better answer is that for tablets that do proximity notification, yes it is trivial to simulate a relative device. For those that don't (and silly as it sounds, not all do), it's not quite as easy. More importantly, a lot of people who use tablets actually like them to be absolute. To some, it provides a more natural metaphor for positioning. I, myself, hate tablets (unless I'm doing something that involves drawing, then they are much nicer then mice). But those who do like them are free to use them. Caveat software developer, Jim
diamant@hpfclp.SDE.HP.COM (John Diamant) (06/29/88)
> 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 think I'm the one that started this (in comp.windows.misc, but it drifted over here, apparently). Anyway, I originally stated that warping the pointer was bad. After some discussion, I revised to comment to instead be that changing the user's focus is bad. So, if the warping is a direct result of a user action, and the input focus and pointer remain (logically) where the user put them, then I see no problem. It's mainly an issue of "principle of least astonishment"). If you are merely following through on a user action, then it may be appropriate. One person in this debate pointed out that this is fine for locators that use relative addressing, but an absolute locator device (a graphics tablet) is hosed if you ever warp the mouse. John Diamant Software Development Environments Hewlett-Packard Co. ARPA Internet: diamant@hpfclp.sde.hp.com Fort Collins, CO UUCP: {hplabs,hpfcla}!hpfclp!diamant
eli@haddock.ISC.COM (Elias Israel) (06/29/88)
In article <4390@mit-vax.LCS.MIT.EDU> josh@mit-vax.LCS.MIT.EDU (Joshua Marantz) writes: >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. My experience with warping cursors comes not from X, but from the Apollo DM, which routinely moves the cursor out from under your hand. I think it's "immoral" to warp the cursor for the simple reason that the new cursor position will no longer correspond to the position of the user's hand. Example: I move the cursor to the upper left to select an icon to de-iconify. When I do it, the DM warps the cursor to the bottom line of the window thus created, moving it more than 3/4 of the way across the screen. Now my hand is in the upper left of my mouse pad and the cursor is much nearer to the lower right. I find this very annoying. I also dislike warping cursors for a more philosophical reason. I do not like machines (or programs) that presume to know what I, the human, am up to. Going back to the Apollo DM example, I often keep a number of manual pages in iconified windows at the top of the screen. Sometimes, I like to open up a number of them for examination. Without the warping cursor, I could simply select and de-iconify each one in turn. Because the DM warps the cursor to the bottom line of every window as it is opened, I have to lift the mouse, reposition it, and drag all the way back for each icon that I want to de-iconify. The window manager should just let me move the cursor as I see fit. I've never met a warp that I liked. Perhaps I haven't met any of the really good ones. Elias Israel | "Justice, n. A commodity which in more or Interactive Systems Corp. | less adulterated condition the State sells Boston, MA | to the citizen as a reward for his allegiance, ..!ima!haddock!eli | taxes, and personal service." | -- Ambrose Bierce, _The Devil's Dictionary_
al@eos.UUCP (Al Globus) (06/30/88)
From article <4390@mit-vax.LCS.MIT.EDU>, by josh@mit-vax.LCS.MIT.EDU (Joshua Marantz): > > 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. Open Look moves the cursor without user input in several circumstances to optimize mouse movement. Looks like a good job to me. The scroll bars are particularly well done.
mckee@corwin.ccs.northeastern.EDU (George McKee) (07/01/88)
Things get more interesting if you have more than one cursor. For instance if you have a text window that allows you to cut from anywhere but paste and type only at one point, like a (pardon the expression) Sun shelltool does, it's real nice to have the text cursor warp down to the fixed typein point whenever you type any character. But the mouse pointer doesn't warp. You can then unwarp the text cursor back to wherever the mouse pointer is with a single button click. I could envision a complex system with several kinds of cursors under control of different mouse buttons, some of which are warped by the program under certain conditions. There should always be something like a window-manager-cursor that never gets warped, though. - George McKee NU Computer Science
Curbow.osbunorth@XEROX.COM (07/02/88)
Re: Warping I work on Xerox Viewpoint (follow on to STAR), where warping the cursor is considered to be a major sin. I also use XDE, Macintosh and SmallTalk-80 - none of which warp the pointer. So, when I first experienced warping in SunTools and then in OpenLook, I was skeptable. After some experience with warping, I am still undecided. There are times when it is nice to have the cursor warped. For example, to buttons on a "Notice" (OL name) or DialogBox (Mac name). But, there are also times when having the cursor warped is annoying as hell. For example, when I popup a menu on the header, and decide that I don't want that menu. When I release the Select button, the cursor goes back to the header, despite the fact that I have usually moved off the header. Other cases where it would be wrong to warp the cursor to the "Notice" buttons": - For example, when the Notice is less than life-threatening and the cursor need not be restricted to the Notice box. - Should some process other than the one currently having the input focus decide to put up a Notice. I'm in favor of "intelligent" warping, but this is a case where less is better than more. I would be happier if there were NO warping rather than TOO MUCH warping. One person's opinion on the subject. /David