Index: /Users/rolandhess/Documents/bf-blender-cvs/blender/source/blender/src/editaction.c =================================================================== --- /Users/rolandhess/Documents/bf-blender-cvs/blender/source/blender/src/editaction.c (revision 13906) +++ /Users/rolandhess/Documents/bf-blender-cvs/blender/source/blender/src/editaction.c (working copy) @@ -2461,6 +2461,24 @@ } } +/* selects all action channels (and therefore bones) of an +action channel group. Have to iterate over all channels and +look for matches, because the linked list in the group points to +all channels in the action after the first one in the group */ +static void select_actionchannels_by_group(bAction *act, bActionGroup *agrp, int selectmode) +{ + bActionChannel *achan; + int select; + + if (!act) + return; + for (achan = act->chanbase.first; achan; achan= achan->next) { + if (achan->grp == agrp) { + select = select_channel(act, achan, selectmode); + } + } +} + /* apparently within active object context */ /* called extern, like on bone selection */ void select_actionchannel_by_name (bAction *act, char *name, int select) @@ -3423,6 +3441,8 @@ deselect_actionchannels(act, 0); select_action_group(act, agrp, SELECT_ADD); } + /* select/deselect channels in group */ + select_actionchannels_by_group(act, agrp, SELECT_ADD); } } break;