John Hunter wrote:
> On Tue, Sep 16, 2008 at 8:57 PM, John Hunter <[EMAIL PROTECTED]> wrote:
>> On Tue, Sep 16, 2008 at 5:09 PM, Eric Firing <[EMAIL PROTECTED]> wrote:
>>
>>> I find this very confusing--the _renderer.dpi is not being used by
>>> get_window_extent().  Is this the intended behavior?  If so, I would
>>> like to at least add a note to that effect to the get_window_extent
>>> docstring
>> No, this was definitely a bug.  Because text layout is expensive, the
>> text module caches the layout based on a cache key (see
>> text.Text.get_prop_tup).  We were using the renderer id, and lots of
>> other stuff, but not the dpi, in the cache key.  I just added the dpi,
>> so it should work correctly now, though I have done no tests.  Give
>> r6098  a whirl and let me know.
> 
> Oops, wait, I answered too fast.  The figure.dpi *was* already used in
> the cache key and the renderer.dpi, which I just added,  is not
> guaranteed to exist (depending on the backend).  I need to figure out
> why the figure.dpi in the cache key is not sufficient ....

Maybe because backend_bases FigureCanvasBase.print_figure cleverly 
changes figure.dpi, prints, and then changes it back again?

         origDPI = self.figure.dpi
         origfacecolor = self.figure.get_facecolor()
         origedgecolor = self.figure.get_edgecolor()

         self.figure.dpi = dpi
         self.figure.set_facecolor(facecolor)
         self.figure.set_edgecolor(edgecolor)

         try:
             result = getattr(self, method_name)(
                 filename,
                 dpi=dpi,
                 facecolor=facecolor,
                 edgecolor=edgecolor,
                 orientation=orientation,
                 **kwargs)
         finally:
             self.figure.dpi = origDPI
             self.figure.set_facecolor(origfacecolor)
             self.figure.set_edgecolor(origedgecolor)
             self.figure.set_canvas(self)
             #self.figure.canvas.draw() ## seems superfluous
         return result


Eric

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to