diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 2567595171c..dffcc8a2201 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -211,10 +211,8 @@ static void layerCopy_tface(const void *source, void *dest, int count) MTFace *dest_tf = (MTFace*)dest; int i; - for(i = 0; i < count; ++i) { + for(i = 0; i < count; ++i) dest_tf[i] = source_tf[i]; - dest_tf[i].flag &= ~TF_ACTIVE; - } } static void layerInterp_tface(void **sources, float *weights, diff --git a/source/blender/src/editface.c b/source/blender/src/editface.c index 68fcc200622..5dc7959d23b 100644 --- a/source/blender/src/editface.c +++ b/source/blender/src/editface.c @@ -1459,7 +1459,7 @@ void select_tface_from_mface(Mesh *me) { MFace *mf; MTFace *tf; - int a; + int a, hasactive=0; if(!me->mtface) return; @@ -1471,6 +1471,11 @@ void select_tface_from_mface(Mesh *me) if(mf->flag & ME_HIDE) tf->flag |= TF_HIDE; else tf->flag &= ~TF_HIDE; + + if(tf->flag & TF_ACTIVE) { + if(hasactive) tf->flag &= ~TF_ACTIVE; + else hasactive= 1; + } } }