Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2004-04-06 23:16:14 +0400
committerTon Roosendaal <ton@blender.org>2004-04-06 23:16:14 +0400
commitc8fadc65dc4bdbb02f174048b02562c852feb4b9 (patch)
tree8c2a141275550e72364070534dcdc02d98b4e4aa /source/blender/src/drawview.c
parentf2c7434c78fe028412ae87b22d36f053f6fb5ad8 (diff)
Bug #1003
Using Nkey in 3d window, you could create a parent-loop, which hangs Blender. Added here that it checks loops, as for normal CTRL+P parenting.
Diffstat (limited to 'source/blender/src/drawview.c')
-rw-r--r--source/blender/src/drawview.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/source/blender/src/drawview.c b/source/blender/src/drawview.c
index 90c56c52a12..2227d3eda7e 100644
--- a/source/blender/src/drawview.c
+++ b/source/blender/src/drawview.c
@@ -106,6 +106,7 @@
#include "BDR_drawmesh.h"
#include "BDR_drawobject.h"
+#include "BDR_editobject.h"
#include "BSE_view.h"
#include "BSE_drawview.h"
@@ -1352,7 +1353,7 @@ void do_viewbuts(unsigned short event)
allqueue(REDRAWVIEW3D, 1);
}
break;
-
+
case B_OBJECTPANELMEDIAN:
if(ob) {
v3d_editvertex_buts(NULL, ob, 1.0);
@@ -1360,6 +1361,13 @@ void do_viewbuts(unsigned short event)
allqueue(REDRAWVIEW3D, 1);
}
break;
+ case B_OBJECTPANELPARENT:
+ if(ob) {
+ if( test_parent_loop(ob->parent, ob) )
+ ob->parent= NULL;
+ allqueue(REDRAWVIEW3D, 1);
+ }
+ break;
case B_ARMATUREPANEL1:
{
@@ -1433,7 +1441,7 @@ static void view3d_panel_object(short cntrl) // VIEW3D_HANDLER_OBJECT
if(uiNewPanel(curarea, block, "Transform Properties", "View3d", 10, 230, 318, 204)==0) return;
uiDefBut(block, TEX, B_IDNAME, "OB: ", 10,180,140,20, ob->id.name+2, 0.0, 18.0, 0, 0, "");
- uiDefIDPoinBut(block, test_obpoin_but, B_REDR, "Par:", 160, 180, 140, 20, &ob->parent, "Parent Object");
+ uiDefIDPoinBut(block, test_obpoin_but, B_OBJECTPANELPARENT, "Par:", 160, 180, 140, 20, &ob->parent, "Parent Object");
lim= 1000.0*MAX2(1.0, G.vd->grid);
@@ -2356,7 +2364,6 @@ void inner_play_anim_loop(int init, int mode)
static ScrArea *oldsa;
static double swaptime;
static int curmode;
- Base *base;
/* init */
if(init) {
@@ -2422,7 +2429,6 @@ int play_anim(int mode)
int cfraont;
unsigned short event=0;
short val;
- Base *base;
/* patch for very very old scenes */
if(SFRA==0) SFRA= 1;