Skip to content

Commit aae3af0

Browse files
authored
Merge pull request #11971 from tacaswell/fix_legend_get_window_extent
FIX: use cached renderer on Legend.get_window_extent
2 parents 6deccc4 + 873ae23 commit aae3af0

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

lib/matplotlib/legend.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -976,9 +976,11 @@ def get_title(self):
976976
'Return the `.Text` instance for the legend title.'
977977
return self._legend_title_box._text
978978

979-
def get_window_extent(self, *args, **kwargs):
979+
def get_window_extent(self, renderer=None):
980980
'Return extent of the legend.'
981-
return self._legend_box.get_window_extent(*args, **kwargs)
981+
if renderer is None:
982+
renderer = self.figure._cachedRenderer
983+
return self._legend_box.get_window_extent(renderer=renderer)
982984

983985
def get_tightbbox(self, renderer):
984986
"""

lib/matplotlib/tests/test_legend.py

+11
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,17 @@ def test_legend_proper_window_extent():
511511
assert pytest.approx(x01*2, 0.1) == x02
512512

513513

514+
def test_window_extent_cached_renderer():
515+
fig, ax = plt.subplots(dpi=100)
516+
ax.plot(range(10), label='Aardvark')
517+
leg = ax.legend()
518+
leg2 = fig.legend()
519+
fig.canvas.draw()
520+
# check that get_window_extent will use the cached renderer
521+
leg.get_window_extent()
522+
leg2.get_window_extent()
523+
524+
514525
def test_legend_title_fontsize():
515526
# test the title_fontsize kwarg
516527
fig, ax = plt.subplots()

0 commit comments

Comments
 (0)