Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2012-07-03 17:47:13 +0400
committerJoshua Leung <aligorith@gmail.com>2012-07-03 17:47:13 +0400
commit44ca0a43287020747db479a2206c6b2587547e59 (patch)
tree12c62f2c41d0ff886bab627be55c8eebb47fae8c /source/blender/editors/space_graph/space_graph.c
parent69ca014d5096329e6f0b54c3e16d654e924c3478 (diff)
Fix for the "black F-Curves" bug on undo
(From personal stash of bugs - since early 2.5 versions) F-Curve colors get applied only on Graph Editor "refresh()". In some cases, undo was reverting back to a state where the colors had not yet been set. In these cases, there would be no refresh() after that undo (until expanding a channel or some other similar action), resulting in "black F-Curves" appearing. So, now we force such an update after undo to ensure that the curves never display black. (Noticed while investigating another bug for Mango related to CLIP_OT_constraint_to_fcurve not sending notifiers required when new F-Curves are added)
Diffstat (limited to 'source/blender/editors/space_graph/space_graph.c')
-rw-r--r--source/blender/editors/space_graph/space_graph.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c
index 756e6997fc8..f4cb4ec3d05 100644
--- a/source/blender/editors/space_graph/space_graph.c
+++ b/source/blender/editors/space_graph/space_graph.c
@@ -189,6 +189,8 @@ static void graph_init(struct wmWindowManager *UNUSED(wm), ScrArea *sa)
sipo->ads->source = (ID *)(G.main->scene.first); // FIXME: this is a really nasty hack here for now...
}
+ /* force immediate init of any invalid F-Curve colors */
+ sipo->flag |= SIPO_TEMP_NEEDCHANSYNC;
ED_area_tag_refresh(sa);
}
@@ -477,7 +479,13 @@ static void graph_listener(ScrArea *sa, wmNotifier *wmn)
if (wmn->data == ND_SPACE_GRAPH)
ED_area_tag_redraw(sa);
break;
-
+ case NC_WINDOW:
+ if (sipo->flag & SIPO_TEMP_NEEDCHANSYNC) {
+ /* force redraw/refresh after undo/redo - prevents "black curve" problem */
+ ED_area_tag_refresh(sa);
+ }
+ break;
+
// XXX: restore the case below if not enough updates occur...
//default:
// if (wmn->data==ND_KEYS)