Skip to content

Commit b7c09d5

Browse files
committed
Move lastevent handling to LocationEvent.process.
1 parent b5763fa commit b7c09d5

File tree

1 file changed

+12
-25
lines changed

1 file changed

+12
-25
lines changed

lib/matplotlib/backend_bases.py

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1290,7 +1290,7 @@ class LocationEvent(Event):
12901290
y data coordinate of the mouse.
12911291
"""
12921292

1293-
lastevent = None # the last event that was triggered before this one
1293+
lastevent = None # The last event processed so far.
12941294

12951295
def __init__(self, name, canvas, x, y, guiEvent=None):
12961296
"""
@@ -1307,7 +1307,6 @@ def __init__(self, name, canvas, x, y, guiEvent=None):
13071307

13081308
if x is None or y is None:
13091309
# cannot check if event was in axes if no (x, y) info
1310-
self._update_enter_leave()
13111310
return
13121311

13131312
if self.canvas.mouse_grabber is None:
@@ -1325,33 +1324,21 @@ def __init__(self, name, canvas, x, y, guiEvent=None):
13251324
self.xdata = xdata
13261325
self.ydata = ydata
13271326

1328-
self._update_enter_leave()
1329-
1330-
def _update_enter_leave(self):
1331-
"""Process the figure/axes enter leave events."""
1332-
if LocationEvent.lastevent is not None:
1333-
last = LocationEvent.lastevent
1334-
if last.inaxes != self.inaxes:
1335-
# process axes enter/leave events
1327+
def process(self):
1328+
last = LocationEvent.lastevent
1329+
last_axes = last.inaxes if last is not None else None
1330+
if last_axes != self.inaxes:
1331+
if last_axes is not None:
13361332
try:
1337-
if last.inaxes is not None:
1338-
last.canvas.callbacks.process('axes_leave_event', last)
1333+
last.canvas.callbacks.process("axes_leave_event", last)
13391334
except Exception:
1335+
# The last canvas may already have been torn down.
13401336
pass
1341-
# See ticket 2901582.
1342-
# I think this is a valid exception to the rule
1343-
# against catching all exceptions; if anything goes
1344-
# wrong, we simply want to move on and process the
1345-
# current event.
1346-
if self.inaxes is not None:
1347-
self.canvas.callbacks.process('axes_enter_event', self)
1348-
1349-
else:
1350-
# process a figure enter event
13511337
if self.inaxes is not None:
1352-
self.canvas.callbacks.process('axes_enter_event', self)
1353-
1354-
LocationEvent.lastevent = self
1338+
self.canvas.callbacks.process("axes_enter_event", self)
1339+
LocationEvent.lastevent = (
1340+
None if self.name == "figure_leave_event" else self)
1341+
super().process()
13551342

13561343

13571344
class MouseButton(IntEnum):

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