From 8355326e0157ce166ce831b7d51d6f671b2048c5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 30 Apr 2007 08:00:48 +0000 Subject: Scene.c - scene.objects.context how dosnt include hidden objects editview.c - deselect all ignores restricted objects headerbuttons.c - removing a material didnt redraw the 3d view vpaint.c - disable vpaint for mesh libdata as well as object libdata --- source/blender/python/api2_2x/Scene.c | 11 ++++++----- source/blender/src/editview.c | 16 ++++++++-------- source/blender/src/headerbuttons.c | 1 + source/blender/src/vpaint.c | 2 +- 4 files changed, 16 insertions(+), 14 deletions(-) (limited to 'source') diff --git a/source/blender/python/api2_2x/Scene.c b/source/blender/python/api2_2x/Scene.c index 883133d33a9..25df96a33bd 100644 --- a/source/blender/python/api2_2x/Scene.c +++ b/source/blender/python/api2_2x/Scene.c @@ -1245,7 +1245,7 @@ int SceneObSeq_setObjects( BPy_SceneObSeq *self, PyObject *value, void *_mode_) } return 0; } - + if (!PySequence_Check(value)) return EXPP_ReturnIntError( PyExc_ValueError, "Error, must assign a sequence of objects to scn.objects.selected" ); @@ -1267,6 +1267,7 @@ int SceneObSeq_setObjects( BPy_SceneObSeq *self, PyObject *value, void *_mode_) blen_ob->flag |= SELECT; base->flag |= SELECT; if (mode==EXPP_OBSEQ_CONTEXT && G.vd) { + blen_ob->restrictflag &= ~OB_RESTRICT_VIEW; blen_ob->lay= base->lay= G.vd->lay; } } @@ -1310,7 +1311,7 @@ static int SceneObSeq_len( BPy_SceneObSeq * self ) return 0; for (base= scene->base.first; base; base= base->next) { - if ((base->flag & SELECT) && (base->lay & G.vd->lay)) { + if TESTBASE(base) { len++; } } @@ -1345,7 +1346,7 @@ static PyObject *SceneObSeq_item( BPy_SceneObSeq * self, int i ) else if (self->mode==EXPP_OBSEQ_CONTEXT) if (G.vd) for (base= scene->base.first; base && i!=index; base= base->next) - if ((base->flag & SELECT) && (base->lay & G.vd->lay)) + if TESTBASE(base) index++; if (!(base)) @@ -1398,7 +1399,7 @@ static PyObject *SceneObSeq_getIter( BPy_SceneObSeq * self ) if (!G.vd) base= NULL; /* will never iterate if we have no */ else - while (base && !((base->flag & SELECT) && (base->lay & G.vd->lay))) + while (base && !TESTBASE(base)) base= base->next; } /* create a new iterator if were alredy using this one */ @@ -1434,7 +1435,7 @@ static PyObject *SceneObSeq_nextIter( BPy_SceneObSeq * self ) if (!G.vd) base= NULL; /* will never iterate if we have no */ else - while (base && !((base->flag & SELECT) && (base->lay & G.vd->lay))) + while (base && !TESTBASE(base)) base= base->next; } self->iter= base; diff --git a/source/blender/src/editview.c b/source/blender/src/editview.c index a787424517a..f4694120f74 100644 --- a/source/blender/src/editview.c +++ b/source/blender/src/editview.c @@ -904,17 +904,17 @@ void deselectall(void) /* is toggle */ base= FIRSTBASE; while(base) { /* is there a visible selected object */ - if TESTBASE(base) { - ok= a= 1; - break; - } - /* are there any objects in the view*/ if(base->lay & G.vd->lay && (base->object->restrictflag & OB_RESTRICT_VIEW)==0 && (base->object->restrictflag & OB_RESTRICT_SELECT)==0 - ) - ok=1; - + ) { + if (base->flag & SELECT) { + ok= a= 1; + break; + } else { + ok=1; + } + } base= base->next; } diff --git a/source/blender/src/headerbuttons.c b/source/blender/src/headerbuttons.c index 83297907992..d274cc83fb3 100644 --- a/source/blender/src/headerbuttons.c +++ b/source/blender/src/headerbuttons.c @@ -765,6 +765,7 @@ void do_global_buttons(unsigned short event) allqueue(REDRAWBUTSSHADING, 0); allqueue(REDRAWIPO, 0); allqueue(REDRAWOOPS, 0); + allqueue(REDRAWVIEW3D, 0); BIF_preview_changed(ID_MA); } } diff --git a/source/blender/src/vpaint.c b/source/blender/src/vpaint.c index 7a9e6a5475e..e71b0d776e1 100644 --- a/source/blender/src/vpaint.c +++ b/source/blender/src/vpaint.c @@ -1582,7 +1582,7 @@ void set_vpaint(void) /* toggle */ scrarea_queue_headredraw(curarea); ob= OBACT; - if(!ob || ob->id.lib) { + if(!ob || object_data_is_libdata(ob)) { G.f &= ~G_VERTEXPAINT; return; } -- cgit v1.2.3