diff --git a/lib/matplotlib/figure.py b/lib/matplotlib/figure.py index 51bac3455a28..41d4b6078223 100644 --- a/lib/matplotlib/figure.py +++ b/lib/matplotlib/figure.py @@ -64,8 +64,8 @@ def _stale_figure_callback(self, val): - if self.figure: - self.figure.stale = val + if (fig := self.get_figure(root=False)) is not None: + fig.stale = val class _AxesStack: diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py index 4e73d4091200..99045e773d02 100644 --- a/lib/matplotlib/tests/test_figure.py +++ b/lib/matplotlib/tests/test_figure.py @@ -1774,10 +1774,13 @@ def test_subfigure_stale_propagation(): sfig2 = sfig1.subfigures() assert fig.stale + assert sfig1.stale fig.draw_without_rendering() assert not fig.stale + assert not sfig1.stale assert not sfig2.stale sfig2.stale = True + assert sfig1.stale assert fig.stale