diff options
author | Joshua Leung <aligorith@gmail.com> | 2007-03-24 06:34:28 +0300 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2007-03-24 06:34:28 +0300 |
commit | 9c32c746991f82c4b8f5d2f45da42c316282743a (patch) | |
tree | e8dffd9324dc1cce24f5d6d68cacebbdcebedb0f | |
parent | 269e943d5849ff1f9f897f6ac32f6a64a1168afe (diff) |
Bugfix #6413: Select all (bones) doesn't work with keyed armature
Silly little mixup (one case where one of the macros I added shouldn't be used)
-rw-r--r-- | source/blender/src/editaction.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/source/blender/src/editaction.c b/source/blender/src/editaction.c index f1ef693317a..1b14a755d42 100644 --- a/source/blender/src/editaction.c +++ b/source/blender/src/editaction.c @@ -928,9 +928,10 @@ bActionChannel *get_hilighted_action_channel(bAction *action) return NULL; for (achan= action->chanbase.first; achan; achan= achan->next) { - if(VISIBLE_ACHAN(achan)) + if(VISIBLE_ACHAN(achan)) { if (SEL_ACHAN(achan) && achan->flag & ACHAN_HILIGHTED) return achan; + } } return NULL; @@ -1562,20 +1563,22 @@ void deselect_actionchannels (bAction *act, int test) /* See if we should be selecting or deselecting */ if (test) { - for (achan=act->chanbase.first; achan; achan= achan->next){ + for (achan=act->chanbase.first; achan; achan= achan->next) { if (VISIBLE_ACHAN(achan)) { if (!sel) break; - if (SEL_ACHAN(achan)) { + if (achan->flag & ACHAN_SELECTED) { sel= 0; break; } - if (sel && EXPANDED_ACHAN(achan)) { - for (conchan=achan->constraintChannels.first; conchan; conchan=conchan->next){ - if (SEL_CONCHAN(conchan)) { - sel= 0; - break; + if (sel) { + if (EXPANDED_ACHAN(achan)) { + for (conchan=achan->constraintChannels.first; conchan; conchan=conchan->next) { + if (SEL_CONCHAN(conchan)) { + sel= 0; + break; + } } } } @@ -1584,7 +1587,7 @@ void deselect_actionchannels (bAction *act, int test) } else sel= 0; - + /* Now set the flags */ for (achan=act->chanbase.first; achan; achan= achan->next) { if (VISIBLE_ACHAN(achan)) { |