diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-10-29 09:32:15 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-10-29 09:36:39 +0300 |
commit | 0e268fb68b612e44a74a74631df206c8aaded97b (patch) | |
tree | 6ff83fb862fda50b7659ead6ec88ff9fa002114a /source/blender/editors/object/object_modes.c | |
parent | cf1cf105a0d10fb4b99d9ff01fc75520dacaacfd (diff) |
Fix topbar tool UI being lost on undo
Using operators to the object mode was resetting the tool.
See: T56865
Diffstat (limited to 'source/blender/editors/object/object_modes.c')
-rw-r--r-- | source/blender/editors/object/object_modes.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/source/blender/editors/object/object_modes.c b/source/blender/editors/object/object_modes.c index b9bfb44f680..ee075a94d29 100644 --- a/source/blender/editors/object/object_modes.c +++ b/source/blender/editors/object/object_modes.c @@ -38,6 +38,7 @@ #include "BKE_object.h" #include "BKE_paint.h" #include "BKE_report.h" +#include "BKE_layer.h" #include "WM_api.h" #include "WM_types.h" @@ -176,6 +177,21 @@ void ED_object_mode_set(bContext *C, eObjectMode mode) wm->op_undo_depth--; } +void ED_object_mode_exit(bContext *C) +{ + Depsgraph *depsgraph = CTX_data_depsgraph(C); + struct Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + ViewLayer *view_layer = CTX_data_view_layer(C); + FOREACH_OBJECT_BEGIN(view_layer, ob) + { + if (ob->mode & OB_MODE_ALL_MODE_DATA) { + ED_object_mode_generic_exit(bmain, depsgraph, scene, ob); + } + } + FOREACH_OBJECT_END; +} + /** \} */ /* -------------------------------------------------------------------- */ |