Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/object/object_modes.c
| Show First 20 Lines • Show All 165 Lines • ▼ Show 20 Lines | |||||
| void ED_object_mode_toggle(bContext *C, eObjectMode mode) | void ED_object_mode_toggle(bContext *C, eObjectMode mode) | ||||
| { | { | ||||
| if (mode != OB_MODE_OBJECT) { | if (mode != OB_MODE_OBJECT) { | ||||
| const char *opstring = object_mode_op_string(mode); | const char *opstring = object_mode_op_string(mode); | ||||
| if (opstring) { | if (opstring) { | ||||
| wmOperatorType *ot = WM_operatortype_find(opstring, false); | wmOperatorType *ot = WM_operatortype_find(opstring, false); | ||||
| if (ot->flag & OPTYPE_USE_EVAL_DATA) { | |||||
| /* We need to force refresh of depsgraph after undo step, | |||||
| * redoing the operator *may* rely on some valid evaluated data. */ | |||||
| struct Main *bmain = CTX_data_main(C); | |||||
| Scene *scene = CTX_data_scene(C); | |||||
| ViewLayer *view_layer = CTX_data_view_layer(C); | |||||
| BKE_scene_view_layer_graph_evaluated_ensure(bmain, scene, view_layer); | |||||
| } | |||||
| WM_operator_name_call_ptr(C, ot, WM_OP_EXEC_REGION_WIN, NULL); | WM_operator_name_call_ptr(C, ot, WM_OP_EXEC_REGION_WIN, NULL); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| /* Wrapper for operator */ | /* Wrapper for operator */ | ||||
| void ED_object_mode_set(bContext *C, eObjectMode mode) | void ED_object_mode_set(bContext *C, eObjectMode mode) | ||||
| { | { | ||||
| wmWindowManager *wm = CTX_wm_manager(C); | wmWindowManager *wm = CTX_wm_manager(C); | ||||
| wm->op_undo_depth++; | wm->op_undo_depth++; | ||||
| /* needed so we don't do undo pushes. */ | /* needed so we don't do undo pushes. */ | ||||
| ED_object_mode_generic_enter(C, mode); | ED_object_mode_generic_enter(C, mode); | ||||
| wm->op_undo_depth--; | wm->op_undo_depth--; | ||||
| } | } | ||||
| void ED_object_mode_exit(bContext *C) | void ED_object_mode_exit(bContext *C) | ||||
brecht: This function is not used anywhere, remove it. | |||||
| { | { | ||||
| Depsgraph *depsgraph = CTX_data_depsgraph(C); | Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(C); | ||||
| struct Main *bmain = CTX_data_main(C); | struct Main *bmain = CTX_data_main(C); | ||||
| Scene *scene = CTX_data_scene(C); | Scene *scene = CTX_data_scene(C); | ||||
| ViewLayer *view_layer = CTX_data_view_layer(C); | ViewLayer *view_layer = CTX_data_view_layer(C); | ||||
| FOREACH_OBJECT_BEGIN (view_layer, ob) { | FOREACH_OBJECT_BEGIN (view_layer, ob) { | ||||
| if (ob->mode & OB_MODE_ALL_MODE_DATA) { | if (ob->mode & OB_MODE_ALL_MODE_DATA) { | ||||
| ED_object_mode_generic_exit(bmain, depsgraph, scene, ob); | ED_object_mode_generic_exit(bmain, depsgraph, scene, ob); | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 113 Lines • Show Last 20 Lines | |||||
This function is not used anywhere, remove it.