diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-04-24 09:11:16 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-04-24 09:11:16 +0300 |
commit | d7672ad0f7f4f4bcf3cb13c72ff19425f3be9709 (patch) | |
tree | 0f4b0ec8b3594ddc5c34f762c813a0c4147d515b /release | |
parent | 2753959ed7165a2e5b9bb5421fd6b3b744817402 (diff) |
Fix tool settings showing in the top-bar
Each spaces top-bar wasn't showing it's own active tool,
Remove RNA access to the workspaces tool since using it is error prone.
Eventually this should be completely removed.
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/startup/bl_ui/space_toolsystem_common.py | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_common.py b/release/scripts/startup/bl_ui/space_toolsystem_common.py index aa9e0bf979f..315efc6ecf7 100644 --- a/release/scripts/startup/bl_ui/space_toolsystem_common.py +++ b/release/scripts/startup/bl_ui/space_toolsystem_common.py @@ -544,12 +544,22 @@ class ToolSelectPanelHelper: self.draw_cls(self.layout, context) @staticmethod + def _tool_key_from_context(context): + space_data = context.space_data + space_type = space_data.type + if space_type == 'VIEW_3D': + return space_type, context.mode + elif space_type == 'IMAGE_EDITOR': + return space_type, space_data.mode + elif space_type == 'NODE_EDITOR': + return space_type, None + else: + return None, None + + @staticmethod def tool_active_from_context(context): - # BAD DESIGN WARNING: last used tool - workspace = context.workspace - space_type = workspace.tools_space_type - mode = workspace.tools_mode - return ToolSelectPanelHelper._tool_active_from_context(context, space_type, mode) + space_type = context.space_data.type + return ToolSelectPanelHelper._tool_active_from_context(context, space_type) @staticmethod def draw_active_tool_header( @@ -557,10 +567,9 @@ class ToolSelectPanelHelper: *, show_tool_name=False, ): - # BAD DESIGN WARNING: last used tool - workspace = context.workspace - space_type = workspace.tools_space_type - mode = workspace.tools_mode + space_type, mode = ToolSelectPanelHelper._tool_key_from_context(context) + if space_type is None: + return None item, tool, icon_value = ToolSelectPanelHelper._tool_get_active(context, space_type, mode, with_icon=True) if item is None: return None |