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:
authorJoshua Leung <aligorith@gmail.com>2008-05-23 08:54:16 +0400
committerJoshua Leung <aligorith@gmail.com>2008-05-23 08:54:16 +0400
commitb4573a0c4bf3b707b2c4552bcb36f555aa0c2ba1 (patch)
tree3ba36634a2d8a5021ca639b84b6d034114d7bacb
parentb7aeda4ff893a60981db0c9abd4072a0243d50d7 (diff)
Bugfix #12508:
Action Editor Border Select Channels no longer selects bones
-rw-r--r--source/blender/src/editaction.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/source/blender/src/editaction.c b/source/blender/src/editaction.c
index a79fc6d6aeb..12b9cb8919f 100644
--- a/source/blender/src/editaction.c
+++ b/source/blender/src/editaction.c
@@ -2564,7 +2564,7 @@ static void select_poseelement_by_name (char *name, int select)
if ((ob==NULL) || (ob->type!=OB_ARMATURE))
return;
- if (select == 2) {
+ if (abs(select) == 2) {
for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next)
pchan->bone->flag &= ~(BONE_ACTIVE);
}
@@ -3263,6 +3263,8 @@ void borderselect_actionchannels (void)
}
break;
case ACTTYPE_ACHAN: /* action channel */
+ case ACTTYPE_FILLIPO: /* expand ipo curves = action channel */
+ case ACTTYPE_FILLCON: /* expand constraint channels = action channel */
{
bActionChannel *achan= (bActionChannel *)ale->data;
@@ -3270,6 +3272,9 @@ void borderselect_actionchannels (void)
achan->flag |= ACHAN_SELECTED;
else
achan->flag &= ~ACHAN_SELECTED;
+
+ /* messy... set active bone */
+ select_poseelement_by_name(achan->name, selectmode);
}
break;
case ACTTYPE_CONCHAN: /* constraint channel */
@@ -3293,6 +3298,14 @@ void borderselect_actionchannels (void)
}
break;
}
+
+ /* select action-channel 'owner' */
+ if ((ale->owner) && (ale->ownertype == ACTTYPE_ACHAN)) {
+ bActionChannel *achano= (bActionChannel *)ale->owner;
+
+ /* messy... set active bone */
+ select_poseelement_by_name(achano->name, selectmode);
+ }
}
ymax=ymin;
@@ -3305,6 +3318,7 @@ void borderselect_actionchannels (void)
allqueue(REDRAWIPO, 0);
allqueue(REDRAWACTION, 0);
allqueue(REDRAWNLA, 0);
+ allqueue(REDRAWVIEW3D, 0);
}
}