Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/undo/ed_undo.c
| Show First 20 Lines • Show All 562 Lines • ▼ Show 20 Lines | if ((WM_operator_repeat_check(C, op)) && (WM_operator_poll(C, op->type)) && | ||||
| /* check for popup and re-layout buttons */ | /* check for popup and re-layout buttons */ | ||||
| ARegion *ar_menu = CTX_wm_menu(C); | ARegion *ar_menu = CTX_wm_menu(C); | ||||
| if (ar_menu) { | if (ar_menu) { | ||||
| ED_region_tag_refresh_ui(ar_menu); | ED_region_tag_refresh_ui(ar_menu); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| if (op->type->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. */ | |||||
| Main *bmain = CTX_data_main(C); | |||||
| scene = CTX_data_scene(C); | |||||
| ViewLayer *view_layer = CTX_data_view_layer(C); | |||||
| BKE_scene_view_layer_graph_evaluated_ensure(bmain, scene, view_layer); | |||||
| } | |||||
| retval = WM_operator_repeat(C, op); | retval = WM_operator_repeat(C, op); | ||||
| if ((retval & OPERATOR_FINISHED) == 0) { | if ((retval & OPERATOR_FINISHED) == 0) { | ||||
| if (G.debug & G_DEBUG) { | if (G.debug & G_DEBUG) { | ||||
| printf("redo_cb: operator redo failed: %s, return %d\n", op->type->name, retval); | printf("redo_cb: operator redo failed: %s, return %d\n", op->type->name, retval); | ||||
| } | } | ||||
| ED_undo_redo(C); | ED_undo_redo(C); | ||||
| } | } | ||||
| else { | else { | ||||
| ▲ Show 20 Lines • Show All 189 Lines • Show Last 20 Lines | |||||