Path: utzoo!attcan!uunet!lll-winken!lll-lcc!ames!mailrus!tut.cis.ohio-state.edu!mandrill!gatech!bloom-beacon!EXPO.LCS.MIT.EDU!jim From: jim@EXPO.LCS.MIT.EDU (Jim Fulton) Newsgroups: comp.windows.x Subject: Re: The morality of warping the cursor Message-ID: <8806281423.AA04976@EXPO.LCS.MIT.EDU> Date: 28 Jun 88 14:23:21 GMT References: <4390@mit-vax.LCS.MIT.EDU> Sender: daemon@bloom-beacon.MIT.EDU Organization: X Consortium, MIT Laboratory for Computer Science Lines: 51 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