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>2007-05-05 08:46:47 +0400
committerJoshua Leung <aligorith@gmail.com>2007-05-05 08:46:47 +0400
commit554e2fe119572920a73d704de9d0c9ba80502495 (patch)
tree266a1108af2d6a935838688b137c1c69e4841684
parent610fca29066560cd16d956270b77fbf684eef4a4 (diff)
Quite a few bugfixes:
* Constraint sliders in Action Editor didn't update buttons window * Homekey in IPO Editor didn't respect scaling. * With Preview Range set, using the SKEY and EKEY hotkeys in the Timeline to change the extents of it, resulted to the NLA editor not being refreshed. (Note: I haven't actually seen this happening) * Keyframing options 'Avail' and 'Needed' didn't work for Objects when they had an ObAction. The problem was that the code assumed that the object had an ipo-block associated with it, but that is not the case when you have an Object Action for that object.
-rw-r--r--source/blender/src/drawaction.c1
-rw-r--r--source/blender/src/editaction.c20
-rw-r--r--source/blender/src/editipo.c16
-rw-r--r--source/blender/src/edittime.c6
-rw-r--r--source/blender/src/header_ipo.c11
5 files changed, 48 insertions, 6 deletions
diff --git a/source/blender/src/drawaction.c b/source/blender/src/drawaction.c
index 9ffb6c7da64..cf76d69f60b 100644
--- a/source/blender/src/drawaction.c
+++ b/source/blender/src/drawaction.c
@@ -213,6 +213,7 @@ static void icu_slider_func(void *voidicu, void *voidignore)
allqueue (REDRAWNLA, 0);
allqueue (REDRAWIPO, 0);
allspace(REMAKEIPO, 0);
+ allqueue(REDRAWBUTSALL, 0);
}
static void make_icu_slider(uiBlock *block, IpoCurve *icu,
diff --git a/source/blender/src/editaction.c b/source/blender/src/editaction.c
index 83e341af8fa..5af14219668 100644
--- a/source/blender/src/editaction.c
+++ b/source/blender/src/editaction.c
@@ -2032,13 +2032,33 @@ static void mouse_actionchannels (short mval[])
case ACTTYPE_FILLIPO:
{
bActionChannel *achan= (bActionChannel *)act_channel;
+
achan->flag ^= ACHAN_SHOWIPO;
+
+ if ((mval[0] > 24) && (achan->flag & ACHAN_SHOWIPO)) {
+ /* select+make active achan */
+ deselect_actionchannels(act, 0);
+ select_channel(act, achan, SELECT_ADD);
+
+ /* messy... set active bone */
+ select_poseelement_by_name(achan->name, 2);
+ }
}
break;
case ACTTYPE_FILLCON:
{
bActionChannel *achan= (bActionChannel *)act_channel;
+
achan->flag ^= ACHAN_SHOWCONS;
+
+ if ((mval[0] > 24) && (achan->flag & ACHAN_SHOWCONS)) {
+ /* select+make active achan */
+ deselect_actionchannels(act, 0);
+ select_channel(act, achan, SELECT_ADD);
+
+ /* messy... set active bone */
+ select_poseelement_by_name(achan->name, 2);
+ }
}
break;
case ACTTYPE_ICU:
diff --git a/source/blender/src/editipo.c b/source/blender/src/editipo.c
index 98502c1f226..95e998d3496 100644
--- a/source/blender/src/editipo.c
+++ b/source/blender/src/editipo.c
@@ -2893,8 +2893,20 @@ void common_insertkey(void)
actname= "Object";
/* all curves in ipo deselect */
- if(base->object->ipo) {
- icu= base->object->ipo->curve.first;
+ if(base->object->ipo || base->object->action) {
+ if (base->object->ipo) {
+ icu= base->object->ipo->curve.first;
+ }
+ else {
+ bActionChannel *achan;
+ achan= get_action_channel(base->object->action, actname);
+
+ if (achan && achan->ipo)
+ icu= achan->ipo->curve.first;
+ else
+ icu= NULL;
+ }
+
while(icu) {
icu->flag &= ~IPO_SELECT;
diff --git a/source/blender/src/edittime.c b/source/blender/src/edittime.c
index 487dd0fbe3b..83e8e5473e1 100644
--- a/source/blender/src/edittime.c
+++ b/source/blender/src/edittime.c
@@ -932,8 +932,7 @@ void winqreadtimespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
}
else
G.scene->r.efra = CFRA;
- allqueue(REDRAWBUTSALL, 0);
- allqueue(REDRAWTIME, 1);
+ allqueue(REDRAWALL, 1);
break;
case MKEY: /* add, rename marker */
if (G.qual & LR_CTRLKEY)
@@ -960,8 +959,7 @@ void winqreadtimespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
}
else
G.scene->r.sfra = CFRA;
- allqueue(REDRAWBUTSALL, 0);
- allqueue(REDRAWTIME, 1);
+ allqueue(REDRAWALL, 1);
break;
case TKEY: /* popup menu */
nr= pupmenu("Time value%t|Frames %x1|Seconds%x2");
diff --git a/source/blender/src/header_ipo.c b/source/blender/src/header_ipo.c
index d4041a817db..1c117e0331e 100644
--- a/source/blender/src/header_ipo.c
+++ b/source/blender/src/header_ipo.c
@@ -961,6 +961,12 @@ void do_ipo_buttons(short event)
ei= G.sipo->editipo;
if(ei==0) return;
+
+ /* map ipo-points for drawing if scaled ipo */
+ if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
+ actstrip_map_ipo_keys(OBACT, G.sipo->ipo, 0, 0);
+ }
+
for(a=0; a<G.sipo->totipo; a++, ei++) {
if ISPOIN(ei, flag & IPO_VISIBLE, icu) {
@@ -973,6 +979,11 @@ void do_ipo_buttons(short event)
else BLI_union_rctf(&(v2d->tot), &(ei->icu->totrct));
}
}
+
+ /* undo mapping of ipo-points for drawing if scaled ipo */
+ if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
+ actstrip_map_ipo_keys(OBACT, G.sipo->ipo, 1, 0);
+ }
/* speciale home */
if(G.qual & LR_SHIFTKEY) {