Tool System: pass space type when setting tool

Internal change only, needed because object mode is now in top-bar.
This commit is contained in:
Campbell Barton 2018-05-16 18:59:43 +02:00
parent 9abb4b555a
commit f6601e2deb
2 changed files with 6 additions and 6 deletions

View File

@ -2338,7 +2338,7 @@ class WM_OT_tool_set_by_name(Operator):
def execute(self, context):
from bl_ui.space_toolsystem_common import activate_by_name
if activate_by_name(context, self.name):
if activate_by_name(context, context.space_data.type, self.name):
return {'FINISHED'}
else:
self.report({'WARNING'}, f"Tool {self.name!r} not found.")

View File

@ -253,11 +253,11 @@ class ToolSelectPanelHelper:
return None, 0
@staticmethod
def _tool_get_by_name(context, text):
def _tool_get_by_name(context, space_type, text):
"""
Return the active Python tool definition and index (if in sub-group, else -1).
"""
cls = ToolSelectPanelHelper._tool_class_from_space_type(context.space_data.type)
cls = ToolSelectPanelHelper._tool_class_from_space_type(space_type)
if cls is not None:
context_mode = context.mode
for item, index in ToolSelectPanelHelper._tools_flatten_with_tool_index(cls.tools_from_context(context)):
@ -556,15 +556,15 @@ class WM_MT_toolsystem_submenu(Menu):
continue
tool_def, icon_name = ToolSelectPanelHelper._tool_vars_from_def(item, context_mode)
icon_value = ToolSelectPanelHelper._icon_value_from_icon_handle(icon_name)
props = layout.operator(
layout.operator(
"wm.tool_set_by_name",
text=item.text,
icon_value=icon_value,
).name = item.text
def activate_by_name(context, text):
item, index = ToolSelectPanelHelper._tool_get_by_name(context, text)
def activate_by_name(context, space_type, text):
item, index = ToolSelectPanelHelper._tool_get_by_name(context, space_type, text)
if item is not None:
context_mode = context.mode
tool_def, icon_name = ToolSelectPanelHelper._tool_vars_from_def(item, context_mode)