*zoom out to rect is implemented, works ok but is not as
> intuitive as I hoped (interrective pan/zoom is so good
> that it will be seldom used, I guess ). After
> testing it, I guess an interractive Pan/Zoom with
pressed-> zoomx=zoomy would be a worthier extension
I say we drop it then. Obviously you are free to do what you want on
your backend, but it doesn't sound like it adds enough to incorporate
it into the general framework.
> However, doing these modif I had some small problems:
> -it seems current CVS print ticker locator instances at
> redraw, I think since you corrected some ticker locator
> bug or something...very minor I guess
> the intended goal...I do not know why, as the axes
> instance a printed continuously during the drag, showing
> that figure is redrawed...but it shows to the screen only
> when I release the button
> -Why is the screen updated only after button release? Is
> there an extra operation to do except the draw, is screen
> updating blocked during events (maybe a double
> buffering?) ...Or I am doing something forbidden
> re-assigning callbacks within another callback?
The reason was performance. tk blits slowly do it is hard to get
interactive refresh rates. Also, matplotlib can be slow for some
figures, so I didn't want to bod down performance with interactive
In retrospect, I think it is a good idea to support dynamic updates.
I recoded the navigation toolbar base class a bit to call a method
dynamic_update during pan/zoom mode and implemented this for gtk (not
yet wx). It is a *very nice* feature, IMO. I had to trap the button
press and release events in gtk because button wasn't defined on a
drag (I guess this is the purpose of a drag event :-). My preference
for now is to not add a separate drag event to mpl_connect for
simplicity, but I'm open to it if you and the rest of the gang think
we should. We can always add it later.
Todd, you may want to take a stab at implementing this in tkagg --
you'll like it! For the slower interactive backends (wx*, tk) it may
be a good idea to make the dynamic update an rc param.