@@ -261,9 +261,9 @@ def __init__(self, *args, **kwargs):
261
261
self ._last_cursor = self ._default_cursor
262
262
self .toolmanager .toolmanager_connect ('tool_added_event' ,
263
263
self ._add_tool_cbk )
264
- # process current tools
265
- for tool in self .toolmanager . tools . values ():
266
- self ._add_tool ( tool )
264
+ for tool in self . toolmanager . tools . values (): # process current tools
265
+ self ._add_tool_cbk ( mpl . backend_managers . ToolEvent (
266
+ 'tool_added_event' , self .toolmanager , tool ) )
267
267
268
268
def set_figure (self , figure ):
269
269
if self ._id_drag :
@@ -273,24 +273,15 @@ def set_figure(self, figure):
273
273
self ._id_drag = self .canvas .mpl_connect (
274
274
'motion_notify_event' , self ._set_cursor_cbk )
275
275
276
- def _tool_trigger_cbk (self , event ):
277
- if event .tool .toggled :
278
- self ._current_tool = event .tool
279
- else :
280
- self ._current_tool = None
281
- self ._set_cursor_cbk (event .canvasevent )
282
-
283
- def _add_tool (self , tool ):
284
- """Set the cursor when the tool is triggered."""
285
- if getattr (tool , 'cursor' , None ) is not None :
286
- self .toolmanager .toolmanager_connect ('tool_trigger_%s' % tool .name ,
287
- self ._tool_trigger_cbk )
288
-
289
276
def _add_tool_cbk (self , event ):
290
277
"""Process every newly added tool."""
291
- if event .tool is self :
292
- return
293
- self ._add_tool (event .tool )
278
+ if getattr (event .tool , 'cursor' , None ) is not None :
279
+ self .toolmanager .toolmanager_connect (
280
+ f'tool_trigger_{ event .tool .name } ' , self ._tool_trigger_cbk )
281
+
282
+ def _tool_trigger_cbk (self , event ):
283
+ self ._current_tool = event .tool if event .tool .toggled else None
284
+ self ._set_cursor_cbk (event .canvasevent )
294
285
295
286
def _set_cursor_cbk (self , event ):
296
287
if not event or not self .canvas :
0 commit comments