diff options
author | Joshua Leung <aligorith@gmail.com> | 2011-07-05 05:54:01 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2011-07-05 05:54:01 +0400 |
commit | a0fa8c3cd2c01fd8d7f77565e12442d322f43a45 (patch) | |
tree | 1e588ebe8e53177f73a58eb14f9cb81551b0dae8 /source/blender/editors/transform | |
parent | e66b778fd65c1e86841dbc0d9e5bea35baea91c5 (diff) |
Bugfix #27856: Transforming Grease Pencil frames in Action Editor
didn't perform updates
* This problem was caused by a typo when adapting old code
* Fixed crash where keyframes-update was being called in Grease Pencil
transforms too
Todo:
Outliner/Datablocks Viewer doesn't update that nicely when these
keyframes get modified. Outside of gdb, I managed to get a few non-
repeatable crashes here; while debugging though, there was only some
lagging oddness if panning before the tree updated.
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r-- | source/blender/editors/transform/transform_conversions.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 3f6383bb855..ef0acfce72a 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -2681,7 +2681,7 @@ static void createTransNlaData(bContext *C, TransInfo *t) static void posttrans_gpd_clean (bGPdata *gpd) { bGPDlayer *gpl; - + for (gpl= gpd->layers.first; gpl; gpl= gpl->next) { ListBase sel_buffer = {NULL, NULL}; bGPDframe *gpf, *gpfn; @@ -4844,7 +4844,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t) // XXX: BAD! this get gpencil datablocks directly from main db... // but that's how this currently works :/ for (gpd = G.main->gpencil.first; gpd; gpd = gpd->id.next) { - if (ID_REAL_USERS(gpd) > 1) + if (ID_REAL_USERS(gpd)) posttrans_gpd_clean(gpd); } } @@ -4872,7 +4872,8 @@ void special_aftertrans_update(bContext *C, TransInfo *t) } /* make sure all F-Curves are set correctly */ - ANIM_editkeyframes_refresh(&ac); + if (ac.datatype != ANIMCONT_GPENCIL) + ANIM_editkeyframes_refresh(&ac); /* clear flag that was set for time-slide drawing */ saction->flag &= ~SACTION_MOVING; |