@@ -261,9 +261,9 @@ def __init__(self, *args, **kwargs):
261261 self ._last_cursor = self ._default_cursor
262262 self .toolmanager .toolmanager_connect ('tool_added_event' ,
263263 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 ) )
267267
268268 def set_figure (self , figure ):
269269 if self ._id_drag :
@@ -273,24 +273,15 @@ def set_figure(self, figure):
273273 self ._id_drag = self .canvas .mpl_connect (
274274 'motion_notify_event' , self ._set_cursor_cbk )
275275
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-
289276 def _add_tool_cbk (self , event ):
290277 """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 )
294285
295286 def _set_cursor_cbk (self , event ):
296287 if not event or not self .canvas :
0 commit comments