Merge branch 'master' into blender2.8
[blender.git] / source / blender / editors / space_graph / space_graph.c
index bfe52459a58a188b44eef74444561a0dac07a2a9..9a825715e18483f2417439681edaa47a375a5279 100644 (file)
@@ -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);
 }