From 9e9cb9fce9c74d32b4f7fad9fdbcbbc59acc53b9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 28 Feb 2018 16:27:55 +1100 Subject: Workspace: sync object-modes to other workspaces When changing the mode of an object, apply this to all other workspaces that share the same active object. Also use copy the object-mode when duplicating workspaces. --- source/blender/editors/sculpt_paint/sculpt.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender/editors/sculpt_paint/sculpt.c') diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 8df3d4e9f90..debc719a5d9 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -60,6 +60,7 @@ #include "BKE_image.h" #include "BKE_key.h" #include "BKE_library.h" +#include "BKE_main.h" #include "BKE_mesh.h" #include "BKE_mesh_mapping.h" #include "BKE_modifier.h" @@ -5669,6 +5670,8 @@ void ED_object_sculptmode_exit_ex( /* Leave sculptmode */ workspace->object_mode &= ~mode_flag; + ED_workspace_object_mode_sync_from_object(G.main->wm.first, workspace, ob); + BKE_sculptsession_free(ob); paint_cursor_delete_textures(); @@ -5691,6 +5694,7 @@ void ED_object_sculptmode_exit(bContext *C) static int sculpt_mode_toggle_exec(bContext *C, wmOperator *op) { + wmWindowManager *wm = CTX_wm_manager(C); WorkSpace *workspace = CTX_wm_workspace(C); Scene *scene = CTX_data_scene(C); Object *ob = CTX_data_active_object(C); @@ -5800,6 +5804,8 @@ static int sculpt_mode_toggle_exec(bContext *C, wmOperator *op) } } + ED_workspace_object_mode_sync_from_object(wm, workspace, ob); + /* VBO no longer valid */ if (ob->derivedFinal) { GPU_drawobject_free(ob->derivedFinal); -- cgit v1.2.3