forked from bartvdbraak/blender
Check if the object is in editmode with (ob->mode==OB_MODE_EDIT) rather then (ob==scene->obedit)
Was trying to fix a hard to redo crash with custom bone shapes in editmode but cant redo. still, will help with future multi-editmode.
This commit is contained in:
parent
efe3858000
commit
a899e9dd18
@ -549,7 +549,7 @@ static void vertex_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, fl
|
|||||||
/* mballs have a different dupli handling */
|
/* mballs have a different dupli handling */
|
||||||
if(ob->type!=OB_MBALL) ob->flag |= OB_DONE; /* doesnt render */
|
if(ob->type!=OB_MBALL) ob->flag |= OB_DONE; /* doesnt render */
|
||||||
|
|
||||||
if(par==scene->obedit) {
|
if(par->mode==OB_MODE_EDIT) {
|
||||||
dm->foreachMappedVert(dm, vertex_dupli__mapFunc, (void*) &vdd);
|
dm->foreachMappedVert(dm, vertex_dupli__mapFunc, (void*) &vdd);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -760,7 +760,7 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa
|
|||||||
else go= go->next; /* group loop */
|
else go= go->next; /* group loop */
|
||||||
}
|
}
|
||||||
|
|
||||||
if(par==scene->obedit) {
|
if(par->mode==OB_MODE_EDIT) {
|
||||||
MEM_freeN(mface);
|
MEM_freeN(mface);
|
||||||
MEM_freeN(mvert);
|
MEM_freeN(mvert);
|
||||||
}
|
}
|
||||||
|
@ -9137,7 +9137,7 @@ int modifiers_isDeformed(Scene *scene, Object *ob)
|
|||||||
ModifierData *md = modifiers_getVirtualModifierList(ob);
|
ModifierData *md = modifiers_getVirtualModifierList(ob);
|
||||||
|
|
||||||
for (; md; md=md->next) {
|
for (; md; md=md->next) {
|
||||||
if(ob==scene->obedit && (md->mode & eModifierMode_Editmode)==0);
|
if(ob->mode==OB_MODE_EDIT && (md->mode & eModifierMode_Editmode)==0);
|
||||||
else
|
else
|
||||||
if(modifier_isDeformer(md))
|
if(modifier_isDeformer(md))
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -2367,7 +2367,7 @@ void object_handle_update(Scene *scene, Object *ob)
|
|||||||
EditMesh *em = BKE_mesh_get_editmesh(ob->data);
|
EditMesh *em = BKE_mesh_get_editmesh(ob->data);
|
||||||
|
|
||||||
// here was vieweditdatamask? XXX
|
// here was vieweditdatamask? XXX
|
||||||
if(ob==scene->obedit) {
|
if(ob->mode==OB_MODE_EDIT) {
|
||||||
makeDerivedMesh(scene, ob, em, CD_MASK_BAREMESH);
|
makeDerivedMesh(scene, ob, em, CD_MASK_BAREMESH);
|
||||||
BKE_mesh_end_editmesh(ob->data, em);
|
BKE_mesh_end_editmesh(ob->data, em);
|
||||||
} else
|
} else
|
||||||
|
@ -350,7 +350,7 @@ static void draw_textured_begin(Scene *scene, View3D *v3d, RegionView3D *rv3d, O
|
|||||||
int istex, solidtex= 0;
|
int istex, solidtex= 0;
|
||||||
|
|
||||||
// XXX scene->obedit warning
|
// XXX scene->obedit warning
|
||||||
if(v3d->drawtype==OB_SOLID || (ob==scene->obedit && v3d->drawtype!=OB_TEXTURE)) {
|
if(v3d->drawtype==OB_SOLID || (ob->mode==OB_MODE_EDIT && v3d->drawtype!=OB_TEXTURE)) {
|
||||||
/* draw with default lights in solid draw mode and edit mode */
|
/* draw with default lights in solid draw mode and edit mode */
|
||||||
solidtex= 1;
|
solidtex= 1;
|
||||||
Gtexdraw.islit= -1;
|
Gtexdraw.islit= -1;
|
||||||
@ -561,7 +561,7 @@ void draw_mesh_text(Scene *scene, Object *ob, int glsl)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* don't draw when editing */
|
/* don't draw when editing */
|
||||||
if(ob == scene->obedit)
|
if(ob->mode==OB_MODE_EDIT)
|
||||||
return;
|
return;
|
||||||
else if(ob==OBACT)
|
else if(ob==OBACT)
|
||||||
if(paint_facesel_test(ob))
|
if(paint_facesel_test(ob))
|
||||||
@ -641,7 +641,7 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o
|
|||||||
/* draw the textured mesh */
|
/* draw the textured mesh */
|
||||||
draw_textured_begin(scene, v3d, rv3d, ob);
|
draw_textured_begin(scene, v3d, rv3d, ob);
|
||||||
|
|
||||||
if(ob == scene->obedit) {
|
if(ob->mode==OB_MODE_EDIT) {
|
||||||
glColor4f(1.0f,1.0f,1.0f,1.0f);
|
glColor4f(1.0f,1.0f,1.0f,1.0f);
|
||||||
dm->drawMappedFacesTex(dm, draw_em_tf_mapped__set_draw, me->edit_mesh);
|
dm->drawMappedFacesTex(dm, draw_em_tf_mapped__set_draw, me->edit_mesh);
|
||||||
} else if(faceselect) {
|
} else if(faceselect) {
|
||||||
|
@ -5512,7 +5512,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
|
|||||||
if(ob==OBACT && (ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT))) {
|
if(ob==OBACT && (ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT))) {
|
||||||
if(ob->type==OB_MESH) {
|
if(ob->type==OB_MESH) {
|
||||||
|
|
||||||
if(ob==scene->obedit);
|
if(ob->mode==OB_MODE_EDIT);
|
||||||
else {
|
else {
|
||||||
if(dt<OB_SOLID)
|
if(dt<OB_SOLID)
|
||||||
zbufoff= 1;
|
zbufoff= 1;
|
||||||
@ -5534,7 +5534,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
|
|||||||
if(dt>=OB_BOUNDBOX ) {
|
if(dt>=OB_BOUNDBOX ) {
|
||||||
|
|
||||||
dtx= ob->dtx;
|
dtx= ob->dtx;
|
||||||
if(scene->obedit==ob) {
|
if(ob->mode==OB_MODE_EDIT) {
|
||||||
// the only 2 extra drawtypes alowed in editmode
|
// the only 2 extra drawtypes alowed in editmode
|
||||||
dtx= dtx & (OB_DRAWWIRE|OB_TEXSPACE);
|
dtx= dtx & (OB_DRAWWIRE|OB_TEXSPACE);
|
||||||
}
|
}
|
||||||
@ -5550,7 +5550,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
|
|||||||
|
|
||||||
/* draw outline for selected solid objects, mesh does itself */
|
/* draw outline for selected solid objects, mesh does itself */
|
||||||
if((v3d->flag & V3D_SELECT_OUTLINE) && ob->type!=OB_MESH) {
|
if((v3d->flag & V3D_SELECT_OUTLINE) && ob->type!=OB_MESH) {
|
||||||
if(dt>OB_WIRE && dt<OB_TEXTURE && ob!=scene->obedit && (flag && DRAW_SCENESET)==0) {
|
if(dt>OB_WIRE && dt<OB_TEXTURE && ob->mode!=OB_MODE_EDIT && (flag && DRAW_SCENESET)==0) {
|
||||||
if (!(ob->dtx&OB_DRAWWIRE) && (ob->flag&SELECT) && !(flag&DRAW_PICKING)) {
|
if (!(ob->dtx&OB_DRAWWIRE) && (ob->flag&SELECT) && !(flag&DRAW_PICKING)) {
|
||||||
|
|
||||||
drawSolidSelect(scene, v3d, ar, base);
|
drawSolidSelect(scene, v3d, ar, base);
|
||||||
@ -6159,7 +6159,7 @@ void draw_object_backbufsel(Scene *scene, View3D *v3d, RegionView3D *rv3d, Objec
|
|||||||
switch( ob->type) {
|
switch( ob->type) {
|
||||||
case OB_MESH:
|
case OB_MESH:
|
||||||
{
|
{
|
||||||
if(ob == scene->obedit) {
|
if(ob->mode==OB_MODE_EDIT) {
|
||||||
Mesh *me= ob->data;
|
Mesh *me= ob->data;
|
||||||
EditMesh *em= me->edit_mesh;
|
EditMesh *em= me->edit_mesh;
|
||||||
|
|
||||||
@ -6215,7 +6215,7 @@ static void draw_object_mesh_instance(Scene *scene, View3D *v3d, RegionView3D *r
|
|||||||
DerivedMesh *dm=NULL, *edm=NULL;
|
DerivedMesh *dm=NULL, *edm=NULL;
|
||||||
int glsl;
|
int glsl;
|
||||||
|
|
||||||
if(ob == scene->obedit)
|
if(ob->mode == OB_MODE_EDIT)
|
||||||
edm= editmesh_get_derived_base(ob, me->edit_mesh);
|
edm= editmesh_get_derived_base(ob, me->edit_mesh);
|
||||||
else
|
else
|
||||||
dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH);
|
dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH);
|
||||||
|
Loading…
Reference in New Issue
Block a user