[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cursor return in graphics window

Whoops, I wrote:

> Eric Williams (eric@astro.wesleyan.edu) writes:
> > I am trying to use cursor to return the coordinates of a mouse click in 
> > a graphics window. In fact I am trying to do it twice, back to back, and 
> > am running in to the problem that one mouse click is being read by both 
> > cursor calls. I want to select two points with the mouse in the graphics 
> > window but since one mouse click is being read by both cursor calls I am 
> > getting the same coordinates for each. I have tried playing with the 
> > wait keyword in cursor but that doesn't seem to make a difference. 
> > 
> > Any suggestions? I am doing this on a Mac right now but have the same 
> > problem on my Solaris boxes.
> Actually, I think your problem is that you are going through
> your event handler twice on the *first* mouse click. Once
> on the down event, and once on the up event. Since you weren't
> anticipating this, you think you are getting the same
> position from two clicks. You could modify your event
> handler to look only for button DOWN events (event.type = 0).

Sorry. I just *assumed* scientific programmers use widgets.
I realize after reading my mail the past couple of days that
this is a bad assumption. :-)

The problem here is that default behaviour of the CURSOR
is to be in the WAIT mode. *But* if the cursor button
is depressed, the default behaviour is to be in a NOWAIT
mode. On fast computers (I.e., any purchased in the past
10 years or so) it is impossible to punch the button fast
enough not to get at least a couple of events generated.

The solution is to simply set the DOWN keyword on the
Cursor command. 



David Fanning, Ph.D.
Fanning Software Consulting
Phone: 970-221-0438 E-Mail: davidf@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155