Fix T67127: Crash Missing DEG tag update mask layer
When ng mask layer operations (add, remove, move) the original mask was not tagged to be updated resulting in missing data on the copy. The Masking function assumes that the copy and the original is always structured the same. Reviewed By: brecht, sergey Differential Revision: https://developer.blender.org/D5283
This commit is contained in:
parent
2e15b72089
commit
f17e2f8dac
Notes:
blender-bot
2023-02-14 08:42:54 +01:00
Referenced by issue #67127, Adding masks layers crashes blender
|
@ -441,6 +441,7 @@ static int masklay_new_exec(bContext *C, wmOperator *op)
|
|||
mask->masklay_act = mask->masklay_tot - 1;
|
||||
|
||||
WM_event_add_notifier(C, NC_MASK | NA_EDITED, mask);
|
||||
DEG_id_tag_update(&mask->id, ID_RECALC_COPY_ON_WRITE);
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
@ -474,6 +475,7 @@ static int masklay_remove_exec(bContext *C, wmOperator *UNUSED(op))
|
|||
BKE_mask_layer_remove(mask, masklay);
|
||||
|
||||
WM_event_add_notifier(C, NC_MASK | NA_EDITED, mask);
|
||||
DEG_id_tag_update(&mask->id, ID_RECALC_COPY_ON_WRITE);
|
||||
}
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
|
@ -2206,6 +2208,7 @@ static int mask_layer_move_exec(bContext *C, wmOperator *op)
|
|||
}
|
||||
|
||||
WM_event_add_notifier(C, NC_MASK | NA_EDITED, mask);
|
||||
DEG_id_tag_update(&mask->id, ID_RECALC_COPY_ON_WRITE);
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue