diff options
Diffstat (limited to 'source/blender/editors/physics/dynamicpaint_ops.c')
-rw-r--r-- | source/blender/editors/physics/dynamicpaint_ops.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/source/blender/editors/physics/dynamicpaint_ops.c b/source/blender/editors/physics/dynamicpaint_ops.c index c51b3ca4c43..aa4652af0ba 100644 --- a/source/blender/editors/physics/dynamicpaint_ops.c +++ b/source/blender/editors/physics/dynamicpaint_ops.c @@ -172,8 +172,8 @@ static int type_toggle_exec(bContext *C, wmOperator *op) /* update dependency */ DAG_id_tag_update(&cObject->id, OB_RECALC_DATA); + DAG_relations_tag_update(CTX_data_main(C)); WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, cObject); - DAG_scene_sort(CTX_data_main(C), scene); return OPERATOR_FINISHED; } @@ -202,7 +202,6 @@ void DPAINT_OT_type_toggle(wmOperatorType *ot) static int output_toggle_exec(bContext *C, wmOperator *op) { Object *ob = ED_object_context(C); - Scene *scene = CTX_data_scene(C); DynamicPaintSurface *surface; DynamicPaintModifierData *pmd = (DynamicPaintModifierData *)modifiers_findByType(ob, eModifierType_DynamicPaint); int output = RNA_enum_get(op->ptr, "output"); /* currently only 1/0 */ @@ -223,9 +222,9 @@ static int output_toggle_exec(bContext *C, wmOperator *op) /* Vertex Color Layer */ if (surface->type == MOD_DPAINT_SURFACE_T_PAINT) { if (!exists) - ED_mesh_color_add(C, scene, ob, ob->data, name, 1); + ED_mesh_color_add(ob->data, name, true); else - ED_mesh_color_remove_named(C, ob, ob->data, name); + ED_mesh_color_remove_named(ob->data, name); } /* Vertex Weight Layer */ else if (surface->type == MOD_DPAINT_SURFACE_T_WEIGHT) { @@ -304,7 +303,9 @@ static int dynamicPaint_bakeImageSequence(bContext *C, DynamicPaintSurface *surf if (blender_test_break()) return 0; /* Update progress bar cursor */ - WM_cursor_time(win, (int)progress); + if (!G.background) { + WM_cursor_time(win, (int)progress); + } /* calculate a frame */ scene->r.cfra = (int)frame; @@ -346,6 +347,7 @@ static int dynamicPaint_bakeImageSequence(bContext *C, DynamicPaintSurface *surf */ static int dynamicPaint_initBake(struct bContext *C, struct wmOperator *op) { + wmWindow *win = CTX_wm_window(C); DynamicPaintModifierData *pmd = NULL; DynamicPaintCanvasSettings *canvas; Object *ob = ED_object_context(C); @@ -379,7 +381,9 @@ static int dynamicPaint_initBake(struct bContext *C, struct wmOperator *op) status = dynamicPaint_bakeImageSequence(C, surface, ob); /* Clear bake */ canvas->flags &= ~MOD_DPAINT_BAKING; - WM_cursor_restore(CTX_wm_window(C)); + if (!G.background) { + WM_cursor_restore(win); + } dynamicPaint_freeSurfaceData(surface); /* Bake was successful: |