Fix T52678: Crash editing gpencil w/ frame-lock
This commit is contained in:
parent
a67aae98fe
commit
3aaf908719
|
@ -7840,7 +7840,7 @@ static void createTransGPencil(bContext *C, TransInfo *t)
|
|||
float mtx[3][3], smtx[3][3];
|
||||
|
||||
const Scene *scene = CTX_data_scene(C);
|
||||
const int cfra = CFRA;
|
||||
const int cfra_scene = CFRA;
|
||||
|
||||
const bool is_prop_edit = (t->flag & T_PROP_EDIT) != 0;
|
||||
const bool is_prop_edit_connected = (t->flag & T_PROP_CONNECTED) != 0;
|
||||
|
@ -7865,7 +7865,7 @@ static void createTransGPencil(bContext *C, TransInfo *t)
|
|||
if (gpencil_layer_is_editable(gpl) && (gpl->actframe != NULL)) {
|
||||
bGPDframe *gpf = gpl->actframe;
|
||||
bGPDstroke *gps;
|
||||
|
||||
|
||||
for (gps = gpf->strokes.first; gps; gps = gps->next) {
|
||||
/* skip strokes that are invalid for current view */
|
||||
if (ED_gpencil_stroke_can_use(C, gps) == false) {
|
||||
|
@ -7921,6 +7921,7 @@ static void createTransGPencil(bContext *C, TransInfo *t)
|
|||
for (gpl = gpd->layers.first; gpl; gpl = gpl->next) {
|
||||
/* only editable and visible layers are considered */
|
||||
if (gpencil_layer_is_editable(gpl) && (gpl->actframe != NULL)) {
|
||||
const int cfra = (gpl->flag & GP_LAYER_FRAMELOCK) ? gpl->actframe->framenum : cfra_scene;
|
||||
bGPDframe *gpf = gpl->actframe;
|
||||
bGPDstroke *gps;
|
||||
float diff_mat[4][4];
|
||||
|
@ -7937,7 +7938,6 @@ static void createTransGPencil(bContext *C, TransInfo *t)
|
|||
* - This is useful when animating as it saves that "uh-oh" moment when you realize you've
|
||||
* spent too much time editing the wrong frame...
|
||||
*/
|
||||
// XXX: should this be allowed when framelock is enabled?
|
||||
if (gpf->framenum != cfra) {
|
||||
gpf = BKE_gpencil_frame_addcopy(gpl, cfra);
|
||||
/* in some weird situations (framelock enabled) return NULL */
|
||||
|
|
Loading…
Reference in New Issue