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>2010-01-31 00:11:46 +0300
committerJoshua Leung <aligorith@gmail.com>2010-01-31 00:11:46 +0300
commit96daa3348d2ab3bdcc0fbbd3fa685eefe1d01067 (patch)
treebeb9fa501d4c62464f4510e187afd98ba081483e
parentd7d185ef4ab0070d955650454c865fdbfeab5aa6 (diff)
Bugfixes:
* Old files imported to 2.5 with curves that got cycles FModifiers added during version patching, would not have their keyframes shown for editing. * #20893: Can't see/show the Properties area in the NLA I don't know why this worked on a few of my test files several months ago, and yet now fails for many files today.
-rw-r--r--source/blender/blenloader/intern/readfile.c8
-rw-r--r--source/blender/editors/space_graph/graph_draw.c27
-rw-r--r--source/blender/editors/space_graph/graph_utils.c19
3 files changed, 35 insertions, 19 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 26492ed490c..39c2550bd79 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -6073,6 +6073,14 @@ static void area_add_window_regions(ScrArea *sa, SpaceLink *sl, ListBase *lb)
ar->alignment= RGN_ALIGN_LEFT;
ar->v2d.scroll= V2D_SCROLL_BOTTOM;
ar->v2d.flag = V2D_VIEWSYNC_AREA_VERTICAL;
+
+ // for some reason, some files still don't get this auto
+ ar= MEM_callocN(sizeof(ARegion), "area region from do_versions");
+ BLI_addtail(lb, ar);
+ ar->regiontype= RGN_TYPE_UI;
+ ar->alignment= RGN_ALIGN_RIGHT;
+ ar->v2d.scroll= V2D_SCROLL_RIGHT;
+ ar->v2d.flag = RGN_FLAG_HIDDEN;
break;
case SPACE_NODE:
diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c
index 753aeb78dde..8f0cfea5d64 100644
--- a/source/blender/editors/space_graph/graph_draw.c
+++ b/source/blender/editors/space_graph/graph_draw.c
@@ -337,15 +337,18 @@ static void draw_fcurve_vertices (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar,
static int draw_fcurve_handles_check(SpaceIpo *sipo, FCurve *fcu)
{
- /* don't draw handle lines if handles are not shown */
- if ( (sipo->flag & SIPO_NOHANDLES) ||
- (fcu->flag & FCURVE_PROTECTED) ||
- (fcu->flag & FCURVE_INT_VALUES) ||
- ((fcu->grp) && (fcu->grp->flag & AGRP_PROTECTED))
- /* || (fcu->totvert <= 1) */
- ) {
+ /* don't draw handle lines if handles are not to be shown */
+ if ( (sipo->flag & SIPO_NOHANDLES) || /* handles shouldn't be shown anywhere */
+ (fcu->flag & FCURVE_PROTECTED) || /* keyframes aren't editable */
+ (fcu->flag & FCURVE_INT_VALUES) || /* editing the handles here will cause weird/incorrect interpolation issues */
+ ((fcu->grp) && (fcu->grp->flag & AGRP_PROTECTED)) || /* group that curve belongs to is not editable */
+ (fcu->totvert <= 1) /* do not show handles if there is only 1 keyframe, otherwise they all clump together in an ugly ball */
+ )
+ {
return 0;
- } else {
+ }
+ else
+ {
return 1;
}
}
@@ -427,7 +430,7 @@ static void draw_fcurve_handles (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar,
}
}
- glEnd(); // GL_LINES
+ glEnd(); // GL_LINES
}
/* Samples ---------------- */
@@ -922,14 +925,14 @@ void graph_draw_curves (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, View2DGri
if (fcu->bezt) {
int do_handles = draw_fcurve_handles_check(sipo, fcu);
-
- if(do_handles) {
+
+ if (do_handles) {
/* only draw handles/vertices on keyframes */
glEnable(GL_BLEND);
draw_fcurve_handles(ac, sipo, ar, fcu);
glDisable(GL_BLEND);
}
-
+
draw_fcurve_vertices(ac, sipo, ar, fcu, do_handles);
}
else {
diff --git a/source/blender/editors/space_graph/graph_utils.c b/source/blender/editors/space_graph/graph_utils.c
index f642b284491..ca5af4d4794 100644
--- a/source/blender/editors/space_graph/graph_utils.c
+++ b/source/blender/editors/space_graph/graph_utils.c
@@ -115,12 +115,24 @@ bAnimListElem *get_active_fcurve_channel (bAnimContext *ac)
/* check if any FModifiers to draw controls for - fcm is 'active' modifier
* used for the polling callbacks + also for drawing
*/
+// TODO: restructure these tests
+// TODO: maybe for now, just allow editing always for now...
short fcurve_needs_draw_fmodifier_controls (FCurve *fcu, FModifier *fcm)
{
/* don't draw if there aren't any modifiers at all */
if (fcu->modifiers.first == NULL)
return 0;
+ /* if only one modifier
+ * - don't draw if it is muted or disabled
+ * - set it as the active one if no active one is present
+ */
+ if (fcu->modifiers.first == fcu->modifiers.last) {
+ fcm= fcu->modifiers.first;
+ if (fcm->flag & (FMODIFIER_FLAG_DISABLED|FMODIFIER_FLAG_MUTED))
+ return 0;
+ }
+
/* if there's an active modifier - don't draw if it doesn't drastically
* alter the curve...
*/
@@ -136,13 +148,6 @@ short fcurve_needs_draw_fmodifier_controls (FCurve *fcu, FModifier *fcm)
}
}
- /* if only one modifier - don't draw if it is muted or disabled */
- if (fcu->modifiers.first == fcu->modifiers.last) {
- fcm= fcu->modifiers.first;
- if (fcm->flag & (FMODIFIER_FLAG_DISABLED|FMODIFIER_FLAG_MUTED))
- return 0;
- }
-
/* if only active modifier - don't draw if it is muted or disabled */
if (fcm) {
if (fcm->flag & (FMODIFIER_FLAG_DISABLED|FMODIFIER_FLAG_MUTED))