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:
@@ -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:
|
||||||
|
Reference in New Issue
Block a user