applied Matt Ebb's patch for the infoeditmenu:

"This patch checks what type of object is selected first and gives an error
message rather than crashing."
This commit is contained in:
2003-05-11 14:10:37 +00:00
parent fbca17dfa7
commit 713f048f73

View File

@@ -2709,6 +2709,13 @@ static uiBlock *info_filemenu(void *arg_unused)
static void do_info_editmenu(void *arg, int event) static void do_info_editmenu(void *arg, int event)
{ {
/* needed to check for valid selected objects */
Base *base;
Object *ob;
base= BASACT;
ob= base->object;
switch(event) { switch(event) {
case 0: case 0:
@@ -2763,32 +2770,49 @@ static void do_info_editmenu(void *arg, int event)
break; break;
case 9: case 9:
/* Shear */ /* Shear */
if (!G.obedit) { /* check that a valid object is selected to prevent crash */
enter_editmode(); if ((ob->type==OB_LAMP) || (ob->type==OB_EMPTY) || (ob->type==OB_FONT) || (ob->type==OB_CAMERA)) {
/* ### put these into a deselectall_gen() */ error("Only editable 3D objects can be sheared");
if(G.obedit->type==OB_MESH) deselectall_mesh(); }
else if ELEM(G.obedit->type, OB_CURVE, OB_SURF) deselectall_nurb(); else {
else if(G.obedit->type==OB_MBALL) deselectall_mball(); if (!G.obedit) {
else if(G.obedit->type==OB_LATTICE) deselectall_Latt(); enter_editmode();
/* ### */ /* ### put these into a deselectall_gen() */
} if(G.obedit->type==OB_MESH) deselectall_mesh();
else if ELEM(G.obedit->type, OB_CURVE, OB_SURF) deselectall_nurb();
else if(G.obedit->type==OB_MBALL) deselectall_mball();
else if(G.obedit->type==OB_LATTICE) deselectall_Latt();
else if(G.obedit->type==OB_ARMATURE) deselectall_armature();
/* ### */
}
if(select_area(SPACE_VIEW3D)) {
transform('S');
}
}
if(select_area(SPACE_VIEW3D)) { if(select_area(SPACE_VIEW3D)) {
transform('S'); transform('S');
} }
break; break;
case 10: case 10:
/* Warp/Bend */ /* Warp/Bend */
if (!G.obedit) { /* check that a valid object is selected to prevent crash */
enter_editmode(); if ((ob->type==OB_LAMP) || (ob->type==OB_EMPTY) || (ob->type==OB_FONT) || (ob->type==OB_CAMERA)) {
/* ### put these into a deselectall_gen() */ error("Only editable 3D objects can be warped");
if(G.obedit->type==OB_MESH) deselectall_mesh(); }
else if ELEM(G.obedit->type, OB_CURVE, OB_SURF) deselectall_nurb(); else {
else if(G.obedit->type==OB_MBALL) deselectall_mball(); if (!G.obedit) {
else if(G.obedit->type==OB_LATTICE) deselectall_Latt(); enter_editmode();
/* ### */ /* ### put these into a deselectall_gen() */
} if(G.obedit->type==OB_MESH) deselectall_mesh();
if(select_area(SPACE_VIEW3D)) { else if ELEM(G.obedit->type, OB_CURVE, OB_SURF) deselectall_nurb();
transform('w'); else if(G.obedit->type==OB_MBALL) deselectall_mball();
else if(G.obedit->type==OB_LATTICE) deselectall_Latt();
else if(G.obedit->type==OB_ARMATURE) deselectall_armature();
/* ### */
}
if(select_area(SPACE_VIEW3D)) {
transform('w');
}
} }
break; break;
case 11: case 11: