Action Editor - Tweaking code for refreshing.

Although there is currently code in place to listen to notifiers + tag updates for regions, these don't actually result in any changes yet. Everything still relies on 'manual' redraw tags for the entire area to have refreshes.
This commit is contained in:
Joshua Leung
2009-02-08 11:06:26 +00:00
parent d7f5eab6cb
commit dd23d47fca
2 changed files with 22 additions and 6 deletions

View File

@@ -95,10 +95,10 @@ void ANIM_animdata_send_notifiers (bContext *C, bAnimContext *ac, short data_cha
case ANIM_CHANGED_KEYFRAMES_VALUES:
/* keyframe values changed, so transform may have changed */
// XXX what about other cases? maybe we need general ND_KEYFRAMES or ND_ANIMATION?
WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL);
WM_event_add_notifier(C, NC_OBJECT|ND_KEYS|ND_TRANSFORM, NULL);
break;
case ANIM_CHANGED_KEYFRAMES_SELECT: // XXX what to do here?
WM_event_add_notifier(C, NC_SCENE, NULL);
case ANIM_CHANGED_KEYFRAMES_SELECT:
WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, NULL);
break;
case ANIM_CHANGED_CHANNELS:
// XXX err... check available datatypes in dopesheet first?
@@ -117,8 +117,24 @@ void ANIM_animdata_send_notifiers (bContext *C, bAnimContext *ac, short data_cha
{
Object *obact= CTX_data_active_object(C);
// only update active object for now... more detail to come!
WM_event_add_notifier(C, NC_OBJECT, obact);
switch (data_changed) {
case ANIM_CHANGED_KEYFRAMES_VALUES:
/* keyframe values changed, so transform may have changed */
// XXX what about other cases? maybe we need general ND_KEYFRAMES or ND_ANIMATION?
WM_event_add_notifier(C, NC_OBJECT|ND_KEYS|ND_TRANSFORM, obact);
break;
case ANIM_CHANGED_KEYFRAMES_SELECT:
WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, obact);
break;
case ANIM_CHANGED_CHANNELS:
// XXX err... check available datatypes in dopesheet first?
// FIXME: this currently doesn't work (to update own view)
WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE|ND_BONE_SELECT, obact);
break;
}
// XXX for now, at least update own editor!
ED_area_tag_redraw(CTX_wm_area(C));
}
break;

View File

@@ -298,7 +298,6 @@ static void action_channel_area_listener(ARegion *ar, wmNotifier *wmn)
switch(wmn->data) {
case ND_BONE_ACTIVE:
case ND_BONE_SELECT:
case ND_KEYS:
ED_region_tag_redraw(ar);
break;
}
@@ -327,6 +326,7 @@ static void action_main_area_listener(ARegion *ar, wmNotifier *wmn)
case ND_BONE_ACTIVE:
case ND_BONE_SELECT:
case ND_KEYS:
case ND_TRANSFORM:
ED_region_tag_redraw(ar);
break;
}