diff options
-rw-r--r-- | source/blender/blenkernel/BKE_workspace.h | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/workspace.c | 13 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_workspace_types.h | 2 |
3 files changed, 13 insertions, 3 deletions
diff --git a/source/blender/blenkernel/BKE_workspace.h b/source/blender/blenkernel/BKE_workspace.h index c5351723442..f295af3150a 100644 --- a/source/blender/blenkernel/BKE_workspace.h +++ b/source/blender/blenkernel/BKE_workspace.h @@ -102,6 +102,7 @@ enum eObjectMode BKE_workspace_object_mode_get(const struct WorkSpace *workspace #ifdef USE_WORKSPACE_MODE void BKE_workspace_object_mode_set(struct WorkSpace *workspace, const enum eObjectMode mode) SETTER_ATTRS; #endif +struct Base *BKE_workspace_active_base_get(const struct WorkSpace *workspace); struct ListBase *BKE_workspace_transform_orientations_get(struct WorkSpace *workspace) GETTER_ATTRS; struct ViewLayer *BKE_workspace_view_layer_get(const struct WorkSpace *workspace) GETTER_ATTRS; void BKE_workspace_view_layer_set(struct WorkSpace *workspace, struct ViewLayer *layer) SETTER_ATTRS; diff --git a/source/blender/blenkernel/intern/workspace.c b/source/blender/blenkernel/intern/workspace.c index 67639b4c7ab..785fd71df69 100644 --- a/source/blender/blenkernel/intern/workspace.c +++ b/source/blender/blenkernel/intern/workspace.c @@ -388,14 +388,23 @@ void BKE_workspace_active_screen_set(WorkSpaceInstanceHook *hook, WorkSpace *wor #ifdef USE_WORKSPACE_MODE eObjectMode BKE_workspace_object_mode_get(const WorkSpace *workspace) { - return workspace->object_mode; + Base *active_base = BKE_workspace_active_base_get(workspace); + return active_base ? active_base->object->mode : OB_MODE_OBJECT; } void BKE_workspace_object_mode_set(WorkSpace *workspace, const eObjectMode mode) { - workspace->object_mode = mode; + Base *active_base = BKE_workspace_active_base_get(workspace); + if (active_base) { + active_base->object->mode = mode; + } } #endif +Base *BKE_workspace_active_base_get(const WorkSpace *workspace) +{ + return workspace->view_layer->basact; +} + ListBase *BKE_workspace_transform_orientations_get(WorkSpace *workspace) { return &workspace->transform_orientations; diff --git a/source/blender/makesdna/DNA_workspace_types.h b/source/blender/makesdna/DNA_workspace_types.h index f69f1b68930..1fc6acb8c2c 100644 --- a/source/blender/makesdna/DNA_workspace_types.h +++ b/source/blender/makesdna/DNA_workspace_types.h @@ -88,7 +88,7 @@ typedef struct WorkSpace { /* Custom transform orientations */ ListBase transform_orientations DNA_PRIVATE_WORKSPACE; - int object_mode DNA_PRIVATE_WORKSPACE; /* enum eObjectMode */ + int pad; int flags DNA_PRIVATE_WORKSPACE; /* enum eWorkSpaceFlags */ /* should be: '#ifdef USE_WORKSPACE_TOOL'. */ |