diff options
author | Joshua Leung <aligorith@gmail.com> | 2011-02-02 02:41:01 +0300 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2011-02-02 02:41:01 +0300 |
commit | efd1d0f901ceed1b278ed4b3079d379ff17c5f1e (patch) | |
tree | 79eef95abfb6823096d8e1bf045afc4036d701de /source/blender/editors | |
parent | b8d9d10a65f79373cc742bc95c3784950686b7a5 (diff) |
Bugfix [#25902] alt+a over 3D view don't up date dropesheet editor
Migrating "redraws" settings from TimeLine view data to per Screen.
The options are now still shown in the TimeLine "Playback" menu
though.
This means that whatever redraw settings you set in a TimeLine editor
will be used throughout a screen (i.e. editor layout) to determine
which editors will get updated during playback, instead of only
certain editors doing certain things at vague times.
---
Also, I moved some version patches pre 2.56 version bump into a
version-check for 2.56. These must've been missed when doing the
release...
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/animation/anim_filter.c | 5 | ||||
-rw-r--r-- | source/blender/editors/screen/screen_edit.c | 1 | ||||
-rw-r--r-- | source/blender/editors/screen/screen_ops.c | 34 | ||||
-rw-r--r-- | source/blender/editors/space_time/space_time.c | 2 |
4 files changed, 13 insertions, 29 deletions
diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 2963062cdd6..6d36daa854c 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -2467,7 +2467,7 @@ static short animdata_filter_dopesheet_summary (bAnimContext *ac, ListBase *anim /* dopesheet summary * - only for drawing and/or selecting keyframes in channels, but not for real editing - * - only useful for DopeSheet Editor, where the summary is useful + * - only useful for DopeSheet/Action/etc. editors where it is actually useful */ // TODO: we should really check if some other prohibited filters are also active, but that can be for later if ((filter_mode & ANIMFILTER_CHANNELS) && (ads->filterflag & ADS_FILTER_SUMMARY)) { @@ -2568,7 +2568,8 @@ int ANIM_animdata_filter (bAnimContext *ac, ListBase *anim_data, int filter_mode switch (datatype) { case ANIMCONT_ACTION: /* 'Action Editor' */ { - bDopeSheet *ads = ((ac->sa) && (ac->sa->spacetype==SPACE_ACTION)) ? &((SpaceAction*)ac->sa->spacedata.first)->ads : NULL; + SpaceAction *saction = (SpaceAction *)ac->sa->spacedata.first; + bDopeSheet *ads = (saction)? &saction->ads : NULL; /* the check for the DopeSheet summary is included here since the summary works here too */ if (animdata_filter_dopesheet_summary(ac, anim_data, filter_mode, &items)) diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 9a11dfaa342..65ccadacf3c 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -418,6 +418,7 @@ bScreen *ED_screen_add(wmWindow *win, Scene *scene, const char *name) sc= alloc_libblock(&G.main->screen, ID_SCR, name); sc->scene= scene; sc->do_refresh= 1; + sc->redraws_flag= TIME_ALL_3D_WIN|TIME_ALL_ANIM_WIN; sc->winid= win->winid; sv1= screen_addvert(sc, 0, 0); diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 1c203b2dd1f..5a1ba01c4e3 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -2696,36 +2696,18 @@ int ED_screen_animation_play(bContext *C, int sync, int mode) } else { ScrArea *sa= CTX_wm_area(C); - int refresh= SPACE_TIME; + int refresh= SPACE_TIME; /* these settings are currently only available from a menu in the TimeLine */ if (mode == 1) // XXX only play audio forwards!? sound_play_scene(scene); - /* timeline gets special treatment since it has it's own menu for determining redraws */ - if ((sa) && (sa->spacetype == SPACE_TIME)) { - SpaceTime *stime= (SpaceTime *)sa->spacedata.first; - - ED_screen_animation_timer(C, stime->redraws, refresh, sync, mode); - - /* update region if TIME_REGION was set, to leftmost 3d window */ - ED_screen_animation_timer_update(screen, stime->redraws, refresh); - } - else { - int redraws = TIME_REGION|TIME_ALL_3D_WIN; - - /* XXX - would like a better way to deal with this situation - Campbell */ - if ((!sa) || (sa->spacetype == SPACE_SEQ)) { - redraws |= TIME_SEQ; - } - - ED_screen_animation_timer(C, redraws, refresh, sync, mode); + ED_screen_animation_timer(C, screen->redraws_flag, refresh, sync, mode); + + if (screen->animtimer) { + wmTimer *wt= screen->animtimer; + ScreenAnimData *sad= wt->customdata; - if(screen->animtimer) { - wmTimer *wt= screen->animtimer; - ScreenAnimData *sad= wt->customdata; - - sad->ar= CTX_wm_region(C); - } + sad->ar= CTX_wm_region(C); } } @@ -2763,7 +2745,7 @@ static int screen_animation_cancel_exec(bContext *C, wmOperator *UNUSED(op)) { bScreen *screen= CTX_wm_screen(C); - if(screen->animtimer) { + if (screen->animtimer) { ScreenAnimData *sad= screen->animtimer->customdata; Scene *scene= CTX_data_scene(C); diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c index 8a692a60777..f05cb860d6f 100644 --- a/source/blender/editors/space_time/space_time.c +++ b/source/blender/editors/space_time/space_time.c @@ -569,7 +569,7 @@ static SpaceLink *time_new(const bContext *C) stime= MEM_callocN(sizeof(SpaceTime), "inittime"); stime->spacetype= SPACE_TIME; - stime->redraws= TIME_ALL_3D_WIN|TIME_ALL_ANIM_WIN; + stime->redraws= TIME_ALL_3D_WIN|TIME_ALL_ANIM_WIN; // XXX: depreceated stime->flag |= TIME_DRAWFRAMES; /* header */ |