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:
authorCampbell Barton <ideasman42@gmail.com>2010-01-19 19:38:48 +0300
committerCampbell Barton <ideasman42@gmail.com>2010-01-19 19:38:48 +0300
commitd77c51a47682addecd60fac07d7b280285cb6c76 (patch)
tree427c8bc0a0eaa2488690f209d5d25b823a29207a /source/blender/editors/space_view3d
parent9396bb2da92080dc44cb255e3f37c8fcac6ead79 (diff)
bugfix [#20736] crash if lasso select while invisble object is selected
- also dont display empty menu's
Diffstat (limited to 'source/blender/editors/space_view3d')
-rw-r--r--source/blender/editors/space_view3d/view3d_select.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c
index 5d9919ea4c0..f7f053b2195 100644
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.c
@@ -345,9 +345,8 @@ int lasso_inside_edge(short mcords[][2], short moves, int x0, int y0, int x1, in
/* warning; lasso select with backbuffer-check draws in backbuf with persp(PERSP_WIN)
and returns with persp(PERSP_VIEW). After lasso select backbuf is not OK
*/
-static void do_lasso_select_pose(ViewContext *vc, short mcords[][2], short moves, short select)
+static void do_lasso_select_pose(ViewContext *vc, Object *ob, short mcords[][2], short moves, short select)
{
- Object *ob= vc->obact;
bPoseChannel *pchan;
float vec[3];
short sco1[2], sco2[2];
@@ -382,7 +381,7 @@ static void do_lasso_select_objects(ViewContext *vc, short mcords[][2], short mo
Base *base;
for(base= vc->scene->base.first; base; base= base->next) {
- if(base->lay & vc->v3d->lay) {
+ if(BASE_SELECTABLE(vc->v3d, base)) { /* use this to avoid un-needed lasso lookups */
project_short(vc->ar, base->object->obmat[3], &base->sx);
if(lasso_inside(mcords, moves, base->sx, base->sy)) {
@@ -391,7 +390,7 @@ static void do_lasso_select_objects(ViewContext *vc, short mcords[][2], short mo
base->object->flag= base->flag;
}
if(base->object->mode & OB_MODE_POSE) {
- do_lasso_select_pose(vc, mcords, moves, select);
+ do_lasso_select_pose(vc, base->object, mcords, moves, select);
}
}
}