diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-01-24 16:48:45 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-01-24 17:01:54 +0300 |
commit | bd64206e1ac828675aad3b16ffe6f4ecc6e6a409 (patch) | |
tree | 438c474ec58e26afed9e8f09a9a4b7ff8beedc4c /source/blender/editors/space_action | |
parent | a4a60358b55d0b42dec425a5dc49ed660e5bbdfb (diff) |
Fix T59933: timeline keyframe display not updating when selecting objects.
Diffstat (limited to 'source/blender/editors/space_action')
-rw-r--r-- | source/blender/editors/space_action/space_action.c | 59 |
1 files changed, 24 insertions, 35 deletions
diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c index b89472cb625..814d99d423c 100644 --- a/source/blender/editors/space_action/space_action.c +++ b/source/blender/editors/space_action/space_action.c @@ -570,44 +570,33 @@ static void action_listener( } break; case NC_SCENE: - if (saction->mode == SACTCONT_TIMELINE) { - switch (wmn->data) { - case ND_RENDER_RESULT: - ED_area_tag_redraw(sa); - break; - case ND_OB_ACTIVE: - case ND_FRAME: - ED_area_tag_refresh(sa); - break; - case ND_FRAME_RANGE: - { - ARegion *ar; - Scene *scene = wmn->reference; - - for (ar = sa->regionbase.first; ar; ar = ar->next) { - if (ar->regiontype == RGN_TYPE_WINDOW) { - ar->v2d.tot.xmin = (float)(SFRA - 4); - ar->v2d.tot.xmax = (float)(EFRA + 4); - break; - } + switch (wmn->data) { + case ND_OB_ACTIVE: + case ND_OB_SELECT: + /* Selection changed, so force refresh to flush + * (needs flag set to do syncing). */ + saction->runtime.flag |= SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC; + ED_area_tag_refresh(sa); + break; + case ND_RENDER_RESULT: + ED_area_tag_redraw(sa); + break; + case ND_FRAME_RANGE: + for (ARegion *ar = sa->regionbase.first; ar; ar = ar->next) { + if (ar->regiontype == RGN_TYPE_WINDOW) { + Scene *scene = wmn->reference; + ar->v2d.tot.xmin = (float)(SFRA - 4); + ar->v2d.tot.xmax = (float)(EFRA + 4); + break; } - break; } - } - } - else { - switch (wmn->data) { - case ND_OB_ACTIVE: /* selection changed, so force refresh to flush - * (needs flag set to do syncing) */ - case ND_OB_SELECT: - saction->runtime.flag |= SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC; - ED_area_tag_refresh(sa); - break; - - default: /* just redrawing the view will do */ + break; + default: + if (saction->mode != SACTCONT_TIMELINE) { + /* Just redrawing the view will do. */ ED_area_tag_redraw(sa); - break; - } + } + break; } break; case NC_OBJECT: |