Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6a32a6f

Browse files
authored
Merge pull request #28312 from anntzer/tsc
Remove one indirection layer in ToolSetCursor.
2 parents 9b8a8c7 + 787c80a commit 6a32a6f

File tree

1 file changed

+10
-19
lines changed

1 file changed

+10
-19
lines changed

lib/matplotlib/backend_tools.py

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)