Skip to content

Commit 5c83d7b

Browse files
committed
FIX: callbacks do not raise after removal of widget axes
closes #25572
1 parent 5a9f7cb commit 5c83d7b

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

lib/matplotlib/widgets.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,9 @@ def __init__(self, ax):
117117
self.ax = ax
118118
self._cids = []
119119

120-
canvas = property(lambda self: self.ax.get_figure(root=True).canvas)
120+
canvas = property(
121+
lambda self: getattr(self.ax.get_figure(root=True), 'canvas', None)
122+
)
121123

122124
def connect_event(self, event, callback):
123125
"""
@@ -144,6 +146,10 @@ def _get_data_coords(self, event):
144146
return ((event.xdata, event.ydata) if event.inaxes is self.ax
145147
else self.ax.transData.inverted().transform((event.x, event.y)))
146148

149+
def ignore(self, event):
150+
# docstring inherited
151+
return super().ignore(event) or self.canvas is None
152+
147153

148154
class Button(AxesWidget):
149155
"""
@@ -2181,7 +2187,9 @@ def connect_default_events(self):
21812187

21822188
def ignore(self, event):
21832189
# docstring inherited
2184-
if not self.active or not self.ax.get_visible():
2190+
if super().ignore(event):
2191+
return True
2192+
if not self.ax.get_visible():
21852193
return True
21862194
# If canvas was locked
21872195
if not self.canvas.widgetlock.available(self):

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy