Merge branch 'master' into blender2.8
[blender.git] / source / blender / editors / space_view3d / view3d_select.c
index 71ec7bf700c1a98e1fe8e17099f3d54fbaf128bc..c38bcbcd6458355cce589f8aff473021d381a205 100644 (file)
@@ -1904,7 +1904,6 @@ static int do_armature_box_select(
         const rcti *rect, bool select, bool extend)
 {
        bArmature *arm = vc->obedit->data;
-       EditBone *ebone;
        int a;
 
        unsigned int buffer[MAXPICKBUF];
@@ -1913,7 +1912,7 @@ static int do_armature_box_select(
        hits = view3d_opengl_select(eval_ctx, vc, buffer, MAXPICKBUF, rect, VIEW3D_SELECT_ALL);
        
        /* clear flag we use to detect point was affected */
-       for (ebone = arm->edbo->first; ebone; ebone = ebone->next)
+       for (EditBone *ebone = arm->edbo->first; ebone; ebone = ebone->next)
                ebone->flag &= ~BONE_DONE;
        
        if (extend == false && select)
@@ -1923,17 +1922,17 @@ static int do_armature_box_select(
        for (a = 0; a < hits; a++) {
                int index = buffer[(4 * a) + 3];
                if (index != -1) {
-                       ebone = BLI_findlink(arm->edbo, index & ~(BONESEL_ANY));
                        if ((index & 0xFFFF0000) == 0) {
                                continue;
                        }
+                       EditBone *ebone = BLI_findlink(arm->edbo, index & ~(BONESEL_ANY));
                        if ((select == false) || ((ebone->flag & BONE_UNSELECTABLE) == 0)) {
                                if (index & BONESEL_TIP) {
                                        ebone->flag |= BONE_DONE;
                                        if (select) ebone->flag |= BONE_TIPSEL;
                                        else ebone->flag &= ~BONE_TIPSEL;
                                }
-                               
+
                                if (index & BONESEL_ROOT) {
                                        ebone->flag |= BONE_DONE;
                                        if (select) ebone->flag |= BONE_ROOTSEL;
@@ -1942,27 +1941,30 @@ static int do_armature_box_select(
                        }
                }
        }
-       
+
        /* now we have to flush tag from parents... */
-       for (ebone = arm->edbo->first; ebone; ebone = ebone->next) {
+       for (EditBone *ebone = arm->edbo->first; ebone; ebone = ebone->next) {
                if (ebone->parent && (ebone->flag & BONE_CONNECTED)) {
-                       if (ebone->parent->flag & BONE_DONE)
+                       if (ebone->parent->flag & BONE_DONE) {
                                ebone->flag |= BONE_DONE;
+                       }
                }
        }
-       
+
        /* only select/deselect entire bones when no points where in the rect */
        for (a = 0; a < hits; a++) {
                int index = buffer[(4 * a) + 3];
                if (index != -1) {
-                       ebone = BLI_findlink(arm->edbo, index & ~(BONESEL_ANY));
                        if (index & BONESEL_BONE) {
+                               EditBone *ebone = BLI_findlink(arm->edbo, index & ~(BONESEL_ANY));
                                if ((select == false) || ((ebone->flag & BONE_UNSELECTABLE) == 0)) {
                                        if (!(ebone->flag & BONE_DONE)) {
-                                               if (select)
+                                               if (select) {
                                                        ebone->flag |= (BONE_ROOTSEL | BONE_TIPSEL | BONE_SELECTED);
-                                               else
+                                               }
+                                               else {
                                                        ebone->flag &= ~(BONE_ROOTSEL | BONE_TIPSEL | BONE_SELECTED);
+                                               }
                                        }
                                }
                        }