@@ -223,12 +223,11 @@ class SetCursorBase(ToolBase):
223223 def __init__ (self , * args , ** kwargs ):
224224 super ().__init__ (* args , ** kwargs )
225225 self ._id_drag = None
226- self ._cursor = None
226+ self ._current_tool = None
227227 self ._default_cursor = cursors .POINTER
228228 self ._last_cursor = self ._default_cursor
229229 self .toolmanager .toolmanager_connect ('tool_added_event' ,
230230 self ._add_tool_cbk )
231-
232231 # process current tools
233232 for tool in self .toolmanager .tools .values ():
234233 self ._add_tool (tool )
@@ -243,10 +242,9 @@ def set_figure(self, figure):
243242
244243 def _tool_trigger_cbk (self , event ):
245244 if event .tool .toggled :
246- self ._cursor = event .tool . cursor
245+ self ._current_tool = event .tool
247246 else :
248- self ._cursor = None
249-
247+ self ._current_tool = None
250248 self ._set_cursor_cbk (event .canvasevent )
251249
252250 def _add_tool (self , tool ):
@@ -264,16 +262,14 @@ def _add_tool_cbk(self, event):
264262 def _set_cursor_cbk (self , event ):
265263 if not event :
266264 return
267-
268- if not getattr (event , 'inaxes' , False ) or not self ._cursor :
269- if self ._last_cursor != self ._default_cursor :
270- self .set_cursor (self ._default_cursor )
271- self ._last_cursor = self ._default_cursor
272- elif self ._cursor :
273- cursor = self ._cursor
274- if cursor and self ._last_cursor != cursor :
275- self .set_cursor (cursor )
276- self ._last_cursor = cursor
265+ if (self ._current_tool and getattr (event , "inaxes" , None )
266+ and event .inaxes .get_navigate ()):
267+ if self ._last_cursor != self ._current_tool .cursor :
268+ self .set_cursor (self ._current_tool .cursor )
269+ self ._last_cursor = self ._current_tool .cursor
270+ elif self ._last_cursor != self ._default_cursor :
271+ self .set_cursor (self ._default_cursor )
272+ self ._last_cursor = self ._default_cursor
277273
278274 def set_cursor (self , cursor ):
279275 """
0 commit comments