diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-12-10 04:45:38 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-12-10 04:45:38 +0300 |
commit | 155b02a1965745eeb876a338f7d8f23b4ba58c0c (patch) | |
tree | b86a93a9aa079f1fb607e13225db1e1146c5abb8 /source | |
parent | cecd4fe2548c57d3ef11010e039410b793b675dd (diff) | |
parent | 642c315bae13ccb418ec767e6f29ca4e450dde5d (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 2 | ||||
-rw-r--r-- | source/blender/editors/space_graph/space_graph.c | 11 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_space_types.h | 2 |
3 files changed, 13 insertions, 2 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 6e0a14ff469..455472dfdfb 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -7495,7 +7495,7 @@ static void lib_link_workspace_layout_restore(struct IDNameLib_Map *id_map, Main /* force recalc of list of channels (i.e. includes calculating F-Curve colors) * thus preventing the "black curves" problem post-undo */ - sipo->runtime.flag |= SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC; + sipo->runtime.flag |= SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC_COLOR; } else if (sl->spacetype == SPACE_BUTS) { SpaceButs *sbuts = (SpaceButs *)sl; diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index bfe52459a58..9a825715e18 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -622,7 +622,7 @@ static void graph_listener(wmWindow *UNUSED(win), ScrArea *sa, wmNotifier *wmn, ED_area_tag_redraw(sa); break; case NC_WINDOW: - if (sipo->runtime.flag & SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC) { + if (sipo->runtime.flag & (SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC | SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC_COLOR)) { /* force redraw/refresh after undo/redo - prevents "black curve" problem */ ED_area_tag_refresh(sa); } @@ -785,6 +785,15 @@ static void graph_refresh(const bContext *C, ScrArea *sa) ED_area_tag_redraw(sa); } + /* We could check 'SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC_COLOR', but color is recalculated anyway. */ + if (sipo->runtime.flag & SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC_COLOR) { + sipo->runtime.flag &= ~SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC_COLOR; +#if 0 /* Done below. */ + graph_refresh_fcurve_colors(C); +#endif + ED_area_tag_redraw(sa); + } + /* init/adjust F-Curve colors */ graph_refresh_fcurve_colors(C); } diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 1e4e58b7c7e..fd977a7dafb 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -438,6 +438,8 @@ typedef enum eGraphEdit_Mode { typedef enum eGraphEdit_Runtime_Flag { /** Temporary flag to force channel selections to be synced with main. */ SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC = (1 << 0), + /** Temporary flag to force fcurves to recalculate colors. */ + SIPO_RUNTIME_FLAG_NEED_CHAN_SYNC_COLOR = (1 << 1), } eGraphEdit_Runtime_Flag; /** \} */ |