@@ -1350,7 +1350,7 @@ class LocationEvent(Event):
13501350 y data coordinate of the mouse.
13511351 """
13521352
1353- lastevent = None # the last event that was triggered before this one
1353+ lastevent = None # The last event processed so far.
13541354
13551355 def __init__ (self , name , canvas , x , y , guiEvent = None ):
13561356 """
@@ -1367,7 +1367,6 @@ def __init__(self, name, canvas, x, y, guiEvent=None):
13671367
13681368 if x is None or y is None :
13691369 # cannot check if event was in axes if no (x, y) info
1370- self ._update_enter_leave ()
13711370 return
13721371
13731372 if self .canvas .mouse_grabber is None :
@@ -1385,33 +1384,21 @@ def __init__(self, name, canvas, x, y, guiEvent=None):
13851384 self .xdata = xdata
13861385 self .ydata = ydata
13871386
1388- self ._update_enter_leave ()
1389-
1390- def _update_enter_leave (self ):
1391- """Process the figure/axes enter leave events."""
1392- if LocationEvent .lastevent is not None :
1393- last = LocationEvent .lastevent
1394- if last .inaxes != self .inaxes :
1395- # process axes enter/leave events
1387+ def process (self ):
1388+ last = LocationEvent .lastevent
1389+ last_axes = last .inaxes if last is not None else None
1390+ if last_axes != self .inaxes :
1391+ if last_axes is not None :
13961392 try :
1397- if last .inaxes is not None :
1398- last .canvas .callbacks .process ('axes_leave_event' , last )
1393+ last .canvas .callbacks .process ("axes_leave_event" , last )
13991394 except Exception :
1395+ # The last canvas may already have been torn down.
14001396 pass
1401- # See ticket 2901582.
1402- # I think this is a valid exception to the rule
1403- # against catching all exceptions; if anything goes
1404- # wrong, we simply want to move on and process the
1405- # current event.
1406- if self .inaxes is not None :
1407- self .canvas .callbacks .process ('axes_enter_event' , self )
1408-
1409- else :
1410- # process a figure enter event
14111397 if self .inaxes is not None :
1412- self .canvas .callbacks .process ('axes_enter_event' , self )
1413-
1414- LocationEvent .lastevent = self
1398+ self .canvas .callbacks .process ("axes_enter_event" , self )
1399+ LocationEvent .lastevent = (
1400+ None if self .name == "figure_leave_event" else self )
1401+ super ().process ()
14151402
14161403
14171404class MouseButton (IntEnum ):
0 commit comments