new Quiver progress

Hey someone said something nice about transforms!

    > About time, isn't it!

    > One thing I still don't understand: when is it necessary to
    > bracket code with freeze/thaw?

It's never necessary, it's an optimization. Lots of objects share the
ax.transData transform. When it is called to transform, all the lazy
objects must be evaluated and lots of virtual function calls made. By
"freezing" the transform, it will evaluate the lazy objects and
compute and cache the components of the affine. Every freeze must be
paired with a thaw, and only when you know the window resize, figure
dpi, xlim settings, etc cannot occur in between the freeze and the
thaw. The call to thaw releases the cached values. It is only
helpful in a deeply nested call to draw with objects that share the
same transformation, eg in Axes.draw.

    > If you want me to go ahead and commit, I am happy to do so.

It would help get more testers. I don't feel strongly either way

    > it. We need to clean things up occasionally, and not keep
    > accumulating alternative versions of things. In that vein,
    > can we drop pcolor_classic before the next major release?

As far as I am concerned, yes, but I suggest posting to the users list
before dropping old functions to see how many people may still want
them around.

JDH

John Hunter wrote:

"Eric" == Eric Firing <efiring@...229...> writes:

    >> Hey someone said something nice about transforms!

    > About time, isn't it!

    > One thing I still don't understand: when is it necessary to
    > bracket code with freeze/thaw?

It's never necessary, it's an optimization. Lots of objects share the
ax.transData transform. When it is called to transform, all the lazy
objects must be evaluated and lots of virtual function calls made. By
"freezing" the transform, it will evaluate the lazy objects and
compute and cache the components of the affine. Every freeze must be
paired with a thaw, and only when you know the window resize, figure
dpi, xlim settings, etc cannot occur in between the freeze and the
thaw.

John,

I don't understand how event handling works, so I am wondering: can we indeed be sure that window resize etc events are being blocked inside the freeze/thaw block in Axes.draw()? Are they blocked inside the entire draw method? What controls when a mouse event gets processed?

Thanks.

Eric