Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-04-24 09:11:16 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-04-24 09:11:16 +0300
commitd7672ad0f7f4f4bcf3cb13c72ff19425f3be9709 (patch)
tree0f4b0ec8b3594ddc5c34f762c813a0c4147d515b /release
parent2753959ed7165a2e5b9bb5421fd6b3b744817402 (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.py27
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