Bugfix: Data from hidden objects was still being taken into account for many NLA-editor operations

NOTE for Merging - do not port this commit, since the changes here are utterly irrelevant to the new system
This commit is contained in:
Joshua Leung
2009-05-05 23:15:31 +00:00
parent 362202cc14
commit 31b52cf953
2 changed files with 28 additions and 3 deletions

View File

@@ -927,7 +927,11 @@ void deselect_nlachannel_keys (int test)
/* Determine if this is selection or deselection */
if (test){
for (base=G.scene->base.first; base && sel; base=base->next){
for (base=G.scene->base.first; base && sel; base=base->next){
/* only consider if visible */
if (nla_filter(base) == 0)
continue;
/* Test object ipos */
if (is_ipo_key_selected(base->object->ipo)){
sel = 0;
@@ -986,7 +990,11 @@ void deselect_nlachannel_keys (int test)
/* Set the flags */
for (base=G.scene->base.first; base; base=base->next){
for (base=G.scene->base.first; base; base=base->next){
/* only consider if visible */
if (nla_filter(base) == 0)
continue;
/* Set the object ipos */
set_ipo_key_selection(base->object->ipo, sel);
@@ -1068,6 +1076,10 @@ void delete_nlachannel_keys(void)
bActionStrip *strip, *nextstrip;
for (base = G.scene->base.first; base; base=base->next){
/* only consider if visible */
if (nla_filter(base) == 0)
continue;
/* Delete object ipos */
delete_ipo_keys(base->object->ipo);
@@ -1122,7 +1134,11 @@ void duplicate_nlachannel_keys(void)
bActionStrip *strip, *laststrip;
/* Find selected items */
for (base = G.scene->base.first; base; base=base->next){
for (base = G.scene->base.first; base; base=base->next){
/* only consider if visible */
if (nla_filter(base) == 0)
continue;
/* Duplicate object keys */
duplicate_ipo_keys(base->object->ipo);

View File

@@ -120,6 +120,7 @@
#include "BSE_view.h"
#include "BSE_drawipo.h"
#include "BSE_drawnla.h" // nla_filter()
#include "BSE_edit.h"
#include "BSE_editipo.h"
#include "BSE_editipo_types.h"
@@ -3132,6 +3133,10 @@ static void createTransNlaData(TransInfo *t)
/* Ensure that partial selections result in beztriple selections */
for (base=G.scene->base.first; base; base=base->next) {
/* only consider if visible */
if (nla_filter(base) == 0)
continue;
/* Check object ipos */
i= count_ipo_keys(base->object->ipo, side, (float)CFRA);
if (i) base->flag |= BA_HAS_RECALC_OB;
@@ -3197,6 +3202,10 @@ static void createTransNlaData(TransInfo *t)
/* build the transdata structure */
td= t->data;
for (base=G.scene->base.first; base; base=base->next) {
/* only consider if visible */
if (nla_filter(base) == 0)
continue;
/* Manipulate object ipos */
/* - no scaling of keyframe times is allowed here */
td= IpoToTransData(td, base->object->ipo, NULL, side, (float)CFRA);