@@ -1319,15 +1319,12 @@ def __init__(self, name, canvas, x, y, guiEvent=None):
1319
1319
self ._update_enter_leave ()
1320
1320
return
1321
1321
1322
- # Find all axes containing the mouse
1323
1322
if self .canvas .mouse_grabber is None :
1324
- axes_list = [a for a in self .canvas .figure .get_axes ()
1325
- if a .in_axes (self )]
1323
+ self .inaxes = self .canvas .inaxes ((x , y ))
1326
1324
else :
1327
- axes_list = [ self .canvas .mouse_grabber ]
1325
+ self . inaxes = self .canvas .mouse_grabber
1328
1326
1329
- if axes_list :
1330
- self .inaxes = cbook ._topmost_artist (axes_list )
1327
+ if self .inaxes is not None :
1331
1328
try :
1332
1329
trans = self .inaxes .transData .inverted ()
1333
1330
xdata , ydata = trans .transform_point ((x , y ))
@@ -1792,6 +1789,39 @@ def enter_notify_event(self, guiEvent=None, xy=None):
1792
1789
event = LocationEvent ('figure_enter_event' , self , x , y , guiEvent )
1793
1790
self .callbacks .process ('figure_enter_event' , event )
1794
1791
1792
+ @cbook .deprecated ("2.1" )
1793
+ def idle_event (self , guiEvent = None ):
1794
+ """Called when GUI is idle."""
1795
+ s = 'idle_event'
1796
+ event = IdleEvent (s , self , guiEvent = guiEvent )
1797
+ self .callbacks .process (s , event )
1798
+
1799
+ def inaxes (self , xy ):
1800
+ """
1801
+ Check if a point is in an axes.
1802
+
1803
+ Parameters
1804
+ ----------
1805
+ xy : tuple or list
1806
+ (x,y) coordinates.
1807
+ x position - pixels from left of canvas.
1808
+ y position - pixels from bottom of canvas.
1809
+
1810
+ Returns
1811
+ -------
1812
+ axes: topmost axes containing the point, or None if no axes.
1813
+
1814
+ """
1815
+ axes_list = [a for a in self .figure .get_axes ()
1816
+ if a .patch .contains_point (xy )]
1817
+
1818
+ if axes_list :
1819
+ axes = cbook ._topmost_artist (axes_list )
1820
+ else :
1821
+ axes = None
1822
+
1823
+ return axes
1824
+
1795
1825
def grab_mouse (self , ax ):
1796
1826
"""
1797
1827
Set the child axes which are currently grabbing the mouse events.
0 commit comments