diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index deb6c7b4ab2..aadfa9e6608 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1885,6 +1885,7 @@ ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *sa, const s BLI_snprintf(newname, sizeof(newname), "%s-%s", oldscreen->id.name + 2, "nonnormal"); sc = ED_screen_add(win, oldscreen->scene, newname); sc->state = state; + sc->redraws_flag = oldscreen->redraws_flag; /* timer */ sc->animtimer = oldscreen->animtimer; diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index ad3d2d1a21a..9374d46b7dc 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -3486,7 +3486,11 @@ static int screen_animation_step(bContext *C, wmOperator *UNUSED(op), const wmEv (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)) { + if (scene->r.cfra < ar->v2d.cur.xmin) { + ar->v2d.cur.xmax = scene->r.cfra; + ar->v2d.cur.xmin = ar->v2d.cur.xmin - w; + } + else if (scene->r.cfra > ar->v2d.cur.xmax) { ar->v2d.cur.xmin = scene->r.cfra; ar->v2d.cur.xmax = ar->v2d.cur.xmin + w; }