Revision: 37730
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37730
Author: aligorith
Date: 2011-06-22 12:54:26 +0000 (Wed, 22 Jun 2011)
Log Message:
-----------
Bugfix [#21276] The Tab key is not working in the Graph Editor when
the list of animated curves is closed
At long last, this old bludger can be put out to pasture. I figured it
would involve some of the visibility-filtering stuff I added, but this
required a bit extra effort than anticipated.
Modified Paths:
--------------
branches/soc-2011-pepper/source/blender/editors/animation/anim_channels_edit.c
branches/soc-2011-pepper/source/blender/editors/animation/anim_filter.c
branches/soc-2011-pepper/source/blender/editors/include/ED_anim_api.h
Modified:
branches/soc-2011-pepper/source/blender/editors/animation/anim_channels_edit.c
===================================================================
---
branches/soc-2011-pepper/source/blender/editors/animation/anim_channels_edit.c
2011-06-22 12:05:24 UTC (rev 37729)
+++
branches/soc-2011-pepper/source/blender/editors/animation/anim_channels_edit.c
2011-06-22 12:54:26 UTC (rev 37730)
@@ -1428,9 +1428,14 @@
* - but for Graph Editor, this gets used also from main region
* where hierarchy doesn't apply [#21276]
*/
- // FIXME: graph editor case
- // XXX: noduplis enabled so that results don't cancel, but will be
problematic for some channels where only type differs
- filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE |
ANIMFILTER_LIST_CHANNELS | ANIMFILTER_NODUPLIS);
+ if ((ac->spacetype == SPACE_IPO) && (ac->regiontype !=
RGN_TYPE_CHANNELS)) {
+ /* graph editor (case 2) */
+ filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_CHANNELS |
ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS);
+ }
+ else {
+ /* standard case */
+ filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE |
ANIMFILTER_LIST_CHANNELS | ANIMFILTER_NODUPLIS);
+ }
if (onlysel) filter |= ANIMFILTER_SEL;
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
Modified:
branches/soc-2011-pepper/source/blender/editors/animation/anim_filter.c
===================================================================
--- branches/soc-2011-pepper/source/blender/editors/animation/anim_filter.c
2011-06-22 12:05:24 UTC (rev 37729)
+++ branches/soc-2011-pepper/source/blender/editors/animation/anim_filter.c
2011-06-22 12:54:26 UTC (rev 37730)
@@ -964,10 +964,13 @@
filter_gmode= filter_mode;
/* if we care about the selection status of the channels,
- * but the group isn't expanded...
+ * but the group isn't expanded (1)...
+ * (1) this only matters if we actually care about the
hierarchy though,
+ * so if we're not filtering for that, then we shouldn't
care, otherwise
+ * cases like [#21276] won't work properly
*/
- if ( (filter_mode & (ANIMFILTER_SEL|ANIMFILTER_UNSEL)) &&
/* care about selection status */
- (EXPANDED_AGRP(ac, agrp)==0) )
/* group isn't expanded */
+ if ( ((filter_mode & ANIMFILTER_LIST_VISIBLE) &&
EXPANDED_AGRP(ac, agrp)==0) && /* care about hierarchy but group isn't
expanded */
+ (filter_mode & (ANIMFILTER_SEL|ANIMFILTER_UNSEL)) )
/* care about selection status
*/
{
/* if the group itself isn't selected appropriately, we
shouldn't consider it's children either */
if (ANIMCHANNEL_SELOK(SEL_AGRP(agrp)) == 0)
Modified: branches/soc-2011-pepper/source/blender/editors/include/ED_anim_api.h
===================================================================
--- branches/soc-2011-pepper/source/blender/editors/include/ED_anim_api.h
2011-06-22 12:05:24 UTC (rev 37729)
+++ branches/soc-2011-pepper/source/blender/editors/include/ED_anim_api.h
2011-06-22 12:54:26 UTC (rev 37730)
@@ -183,25 +183,6 @@
/* ----------------- Filtering -------------------- */
-#if 0 /// old
-/* filtering flags - under what circumstances should a channel be added */
-typedef enum eAnimFilter_Flags {
- ANIMFILTER_VISIBLE = (1<<0), /* should channels be
visible (in terms of hierarchy only) */
- //ANIMFILTER_SEL = (1<<1), /* should
channels be selected */
- //ANIMFILTER_UNSEL = (1<<2), /* should channels be
NOT selected */
- //ANIMFILTER_FOREDIT = (1<<3), /* does editable status
matter */
- ANIMFILTER_CURVESONLY = (1<<4), /* don't include
summary-channels, etc. */ // double-check on how this goes for actedit
- ANIMFILTER_CHANNELS = (1<<5), /* make list for
interface drawing */
- //ANIMFILTER_ACTGROUPED = (1<<6), /* belongs to the active
actiongroup */
- ANIMFILTER_CURVEVISIBLE = (1<<7), /* F-Curve is visible for
editing/viewing in Graph Editor */
- //ANIMFILTER_ACTIVE = (1<<8), /* channel should be
'active' */
- //ANIMFILTER_ANIMDATA = (1<<9), /* only return the
underlying AnimData blocks (not the tracks, etc.) data comes from */
- ANIMFILTER_NLATRACKS = (1<<10), /* only include NLA-tracks */
- //ANIMFILTER_SELEDIT = (1<<11), /* link editability
with selected status */
- //ANIMFILTER_NODUPLIS = (1<<12), /* duplicate entries
for animation data attached to multi-user blocks must not occur */
-} eAnimFilter_Flags;
-#endif
-
/* filtering flags - under what circumstances should a channel be returned */
// TODO: flag to just test if there's any channel inside worthy of being added
- return 1 as soon as this is encountered, but don't add
typedef enum eAnimFilter_Flags {
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs