From: Benjamin R. <ben...@ou...> - 2011-10-23 02:57:47
|
On Saturday, October 22, 2011, Daniel Hyams <dh...@gm...> wrote: > matplotlib doesn't support double clicks, and I was wondering if that > was a design decision, or something that had been relegated to the "to > do" box for someday. Hoping that it was still in the "todo" box, I > think I can put most of it in without too much trouble, and supply you > with a patch. > > The changes would be: > 1) an extra flag MouseEvent, so that in a button_press_event > handler, you can can tell if the press was a result of a double click > or not, and > 2) code in the backends to catch and set the double click flag properly > > I looked through the backends, and it was clear what to do in order to > support double clicks for all but backend_macosx.py. I might be able > to deduce what to do there, but will likely need some support from > someone in order to get that one done. > > To support the double clicks, I would rather not create a new event > like 'button_doubleclick_event', for backwards compatibility. I > believe that if we just stick with 'button_press_event' and set an > extra flag within the MouseEvent, any existing mpl code will still > work properly, because the normal sequence of events on a double click > are; DOWN, UP, DBLCLICK, UP. In current versions of matplotlib, the > DBLCLICK event is treated as a DOWN, and the strategy of just adding a > extra flag in MouseEvent would mean that existing mpl code would still > see the double click event as a DOWN. > > Anyway, I want to "throw a feeler" out there, and ask if the patch > would be accepted were I to go ahead and do it. I didn't want to spend > the time working on it if a decision had already been made a while > back to not ever support double clicks. > My vote would be yes, but I think i would want it as a separate event. Consider some of the widgets like lasso and the zoom bbox. If one were to attach a button_press_event for the purpose of detecting double clicks, I would imagine that there may exist conflicts (or those widget codes would have to be adjusted to exclusively respond only to single clicks). Would existing widgets also fire even if a double-click occured? My 2 cents, Ben Rootl |