From 3b50d5ce0016363deda097d781c12281e9ee22bc Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Sat, 12 Apr 2025 22:12:02 -0400 Subject: [PATCH] Backport PR #29907: Ensure text metric calculation always uses the text cache --- lib/matplotlib/offsetbox.py | 7 ++++--- .../constrained_layout10.png | Bin 16820 -> 24407 bytes lib/matplotlib/text.py | 8 ++++---- lib/mpl_toolkits/axisartist/axis_artist.py | 5 +++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/matplotlib/offsetbox.py b/lib/matplotlib/offsetbox.py index 86223e65d6bb..e987e969871a 100644 --- a/lib/matplotlib/offsetbox.py +++ b/lib/matplotlib/offsetbox.py @@ -794,9 +794,10 @@ def get_offset(self): return self._offset def get_bbox(self, renderer): - _, h_, d_ = renderer.get_text_width_height_descent( - "lp", self._text._fontproperties, - ismath="TeX" if self._text.get_usetex() else False) + _, h_, d_ = mtext._get_text_metrics_with_cache( + renderer, "lp", self._text._fontproperties, + ismath="TeX" if self._text.get_usetex() else False, + dpi=self.get_figure(root=True).dpi) bbox, info, yd = self._text._get_layout(renderer) w, h = bbox.size diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout10.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout10.png index 8dc29f4cbc361a09c9437fa935466d5ee91891d2..2f0998c5e66c8e6d47109b1c5209167e965f4fa8 100644 GIT binary patch literal 24407 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 f;2%D2SL|$|^0ASIq83 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