diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2015-02-06 00:14:38 +0300 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2015-02-06 00:14:38 +0300 |
commit | ced4c5fe2260489f44a38498c3adfd3333215a26 (patch) | |
tree | 30f98e8dc38612fb758ae6b264a8e20fc69d8167 /source/blender/editors | |
parent | d5b1dfa9c6eef4365db1bc51496c71131a8ffa51 (diff) |
Animation play: Follow feature. Enabled from playback menu in the
timeline.
When enabled, ipo, dopesheet, NLA, timeline, clip and sequence editors
will follow the current frame during animation. When the cursor reaches
the end of the screen, then the next range of frames of the same width
is displayed.
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/screen/screen_ops.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 6b75d21163a..ad3d2d1a21a 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -3469,11 +3469,29 @@ static int screen_animation_step(bContext *C, wmOperator *UNUSED(op), const wmEv for (sa = window->screen->areabase.first; sa; sa = sa->next) { ARegion *ar; for (ar = sa->regionbase.first; ar; ar = ar->next) { + bool redraw = false; if (ar == sad->ar) { - ED_region_tag_redraw(ar); + redraw = true; } else if (match_region_with_redraws(sa->spacetype, ar->regiontype, sad->redraws)) { + redraw = true; + } + + if (redraw) { ED_region_tag_redraw(ar); + /* do follow here if editor type supports it */ + if ((sad->redraws & TIME_FOLLOW)) { + if ((ar->regiontype == RGN_TYPE_WINDOW && + ELEM (sa->spacetype, SPACE_SEQ, SPACE_TIME, SPACE_IPO, SPACE_ACTION, SPACE_NLA)) || + (sa->spacetype == SPACE_CLIP && ar->regiontype == RGN_TYPE_PREVIEW)) + { + float w = BLI_rctf_size_x(&ar->v2d.cur); + if (scene->r.cfra < ar->v2d.cur.xmin || scene->r.cfra > (ar->v2d.cur.xmax)) { + ar->v2d.cur.xmin = scene->r.cfra; + ar->v2d.cur.xmax = ar->v2d.cur.xmin + w; + } + } + } } } |