diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-09-07 14:24:12 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-09-07 14:24:12 +0400 |
commit | 28d18d59a314f3579fcf272e0b9b5c5ea03a1513 (patch) | |
tree | bfc89d5e54e36ed4ac13c1dacd3006c18f2ec0d4 /source/blender/editors/space_view3d/view3d_select.c | |
parent | ea95d71067ec3abc392d69321c35dd1b78b65712 (diff) |
bugfix [#22831] transform problem with hidden parent object
dont allow selecting of hidden objects or restrict selected object by using the BASE_SELECTABLE macro.
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_select.c')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_select.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index b3d4e513d43..966fac1a3bd 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -1055,7 +1055,7 @@ static Base *mouse_select_eval_buffer(ViewContext *vc, unsigned int *buffer, int base= FIRSTBASE; while(base) { - if(base->lay & v3d->lay) { + if(BASE_SELECTABLE(v3d, base)) { if(base->selcol==selcol) break; } base= base->next; @@ -1074,7 +1074,7 @@ static Base *mouse_select_eval_buffer(ViewContext *vc, unsigned int *buffer, int if(base==startbase) break; } - if(base->lay & v3d->lay) { + if(BASE_SELECTABLE(v3d, base)) { for(a=0; a<hits; a++) { if(has_bones) { /* skip non-bone objects */ @@ -1623,7 +1623,7 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op) } else { while(base) { Base *next = base->next; - if(base->lay & v3d->lay) { + if(BASE_SELECTABLE(v3d, base)) { ED_base_object_select(base, BA_DESELECT); } base= next; @@ -1652,7 +1652,7 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op) while(base && hits) { Base *next = base->next; - if(base->lay & v3d->lay) { + if(BASE_SELECTABLE(v3d, base)) { while (base->selcol == (*col & 0xFFFF)) { /* we got an object */ if(*col & 0xFFFF0000) { /* we got a bone */ @@ -2092,7 +2092,7 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op) Base *base; selecting= selecting?BA_SELECT:BA_DESELECT; for(base= FIRSTBASE; base; base= base->next) { - if(base->lay & v3d->lay) { + if(BASE_SELECTABLE(v3d, base)) { project_short(ar, base->object->obmat[3], &base->sx); if(base->sx!=IS_CLIPPED) { int dx= base->sx-x; |