diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-03-03 08:39:57 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-03-03 08:39:57 +0300 |
commit | 8d575899a17f12681beb9bdb3f7d3005d6d12103 (patch) | |
tree | cfe94562589ae081d939623196373e296a270199 /source/blender/editors/screen/workspace_edit.c | |
parent | b8f7538348e6ff37d960cd933562d1f5ff15241c (diff) |
WorkSpace: use existing mode data w/ scene-switch
Check if mode data exists before attempting to change the modes.
Diffstat (limited to 'source/blender/editors/screen/workspace_edit.c')
-rw-r--r-- | source/blender/editors/screen/workspace_edit.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/source/blender/editors/screen/workspace_edit.c b/source/blender/editors/screen/workspace_edit.c index 8a6c8e8628e..2b28f61f901 100644 --- a/source/blender/editors/screen/workspace_edit.c +++ b/source/blender/editors/screen/workspace_edit.c @@ -212,14 +212,10 @@ bool ED_workspace_change( if (use_object_mode) { /* weak, set it back so it's used when activating again. */ eObjectMode object_mode = workspace_old->object_mode; - if (obact_old == obact_new) { - ED_object_mode_generic_exit(&eval_ctx_old, workspace_old, scene, obact_old); - } - else { - ED_object_mode_generic_exit_or_other_window(&eval_ctx_old, bmain->wm.first, workspace_old, scene, obact_old); - } + ED_object_mode_generic_exit_or_other_window(&eval_ctx_old, bmain->wm.first, workspace_old, scene, obact_old); workspace_old->object_mode = object_mode; - ED_object_mode_generic_enter_or_other_window(C, workspace_new->object_mode); + ED_workspace_object_mode_sync_from_object(bmain->wm.first, workspace_old, obact_old); + ED_object_mode_generic_enter_or_other_window(C, NULL, workspace_new->object_mode); } else { if (obact_new == NULL) { |