From e9d733a8bd9ebf803d4afac419670974792a3c0d Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Fri, 28 Mar 2014 15:13:21 +0100 Subject: Fix T39484: Time line: highlighted area for frame range one frame too short. Just using same principle as the one already used for the 'cache bar': add -0.5/+0.5 offsets to start/end (also edited 'view all' op to match this). --- source/blender/editors/space_time/space_time.c | 21 ++++++++++++--------- source/blender/editors/space_time/time_ops.c | 4 ++-- 2 files changed, 14 insertions(+), 11 deletions(-) (limited to 'source/blender/editors/space_time') diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c index 09d51cf7afb..f86f7134b31 100644 --- a/source/blender/editors/space_time/space_time.c +++ b/source/blender/editors/space_time/space_time.c @@ -67,17 +67,20 @@ /* ************************ main time area region *********************** */ static void time_draw_sfra_efra(Scene *scene, View2D *v2d) -{ - /* draw darkened area outside of active timeline - * frame range used is preview range or scene range +{ + /* Draw darkened area outside of active timeline frame range used is preview range or scene range. + * Note we use STFRA - 0.5 and PEFRA + 0.5, else visible 'active' area is one frame less than what's expected! */ + const float psfra = ((float)PSFRA) - 0.5f; + const float pefra = ((float)PEFRA) + 0.5f; + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); glColor4f(0.0f, 0.0f, 0.0f, 0.4f); - - if (PSFRA < PEFRA) { - glRectf(v2d->cur.xmin, v2d->cur.ymin, (float)PSFRA, v2d->cur.ymax); - glRectf((float)PEFRA, v2d->cur.ymin, v2d->cur.xmax, v2d->cur.ymax); + + if (psfra < pefra) { + glRectf(v2d->cur.xmin, v2d->cur.ymin, psfra, v2d->cur.ymax); + glRectf(pefra, v2d->cur.ymin, v2d->cur.xmax, v2d->cur.ymax); } else { glRectf(v2d->cur.xmin, v2d->cur.ymin, v2d->cur.xmax, v2d->cur.ymax); @@ -86,8 +89,8 @@ static void time_draw_sfra_efra(Scene *scene, View2D *v2d) UI_ThemeColorShade(TH_BACK, -60); /* thin lines where the actual frames are */ - fdrawline((float)PSFRA, v2d->cur.ymin, (float)PSFRA, v2d->cur.ymax); - fdrawline((float)PEFRA, v2d->cur.ymin, (float)PEFRA, v2d->cur.ymax); + fdrawline(psfra, v2d->cur.ymin, psfra, v2d->cur.ymax); + fdrawline(pefra, v2d->cur.ymin, pefra, v2d->cur.ymax); } #define CACHE_DRAW_HEIGHT 3.0f diff --git a/source/blender/editors/space_time/time_ops.c b/source/blender/editors/space_time/time_ops.c index e2e861fda38..0de9c296d3e 100644 --- a/source/blender/editors/space_time/time_ops.c +++ b/source/blender/editors/space_time/time_ops.c @@ -147,8 +147,8 @@ static int time_view_all_exec(bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* set extents of view to start/end frames (Preview Range too) */ - v2d->cur.xmin = (float)PSFRA; - v2d->cur.xmax = (float)PEFRA; + v2d->cur.xmin = ((float)PSFRA) - 0.5f; + v2d->cur.xmax = ((float)PEFRA) + 0.5f; /* we need an extra "buffer" factor on either side so that the endpoints are visible */ extra = 0.01f * BLI_rctf_size_x(&v2d->cur); -- cgit v1.2.3