@@ -223,12 +223,11 @@ class SetCursorBase(ToolBase):
223
223
def __init__ (self , * args , ** kwargs ):
224
224
super ().__init__ (* args , ** kwargs )
225
225
self ._id_drag = None
226
- self ._cursor = None
226
+ self ._current_tool = None
227
227
self ._default_cursor = cursors .POINTER
228
228
self ._last_cursor = self ._default_cursor
229
229
self .toolmanager .toolmanager_connect ('tool_added_event' ,
230
230
self ._add_tool_cbk )
231
-
232
231
# process current tools
233
232
for tool in self .toolmanager .tools .values ():
234
233
self ._add_tool (tool )
@@ -243,10 +242,9 @@ def set_figure(self, figure):
243
242
244
243
def _tool_trigger_cbk (self , event ):
245
244
if event .tool .toggled :
246
- self ._cursor = event .tool . cursor
245
+ self ._current_tool = event .tool
247
246
else :
248
- self ._cursor = None
249
-
247
+ self ._current_tool = None
250
248
self ._set_cursor_cbk (event .canvasevent )
251
249
252
250
def _add_tool (self , tool ):
@@ -264,16 +262,14 @@ def _add_tool_cbk(self, event):
264
262
def _set_cursor_cbk (self , event ):
265
263
if not event :
266
264
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
277
273
278
274
def set_cursor (self , cursor ):
279
275
"""
0 commit comments