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:
authorCampbell Barton <ideasman42@gmail.com>2010-01-25 20:24:04 +0300
committerCampbell Barton <ideasman42@gmail.com>2010-01-25 20:24:04 +0300
commit52284155e1a9b0935c91a55009f16132622c964c (patch)
tree597e075b6bf629cb4a99a50e3d25c942d265761a /source/blender/blenloader/intern/readfile.c
parent623ea4931ce20b1e878c4e36cada4bdca5c76716 (diff)
undo would often crash when filter_group was used.
conversion wasnt included in lib_link_screen_restore
Diffstat (limited to 'source/blender/blenloader/intern/readfile.c')
-rw-r--r--source/blender/blenloader/intern/readfile.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index cb17b3332b7..492321d9ed9 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -4869,10 +4869,11 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene)
}
else if(sl->spacetype==SPACE_IPO) {
- /* XXX animato */
-#if 0
SpaceIpo *sipo= (SpaceIpo *)sl;
+ bDopeSheet *ads= sipo->ads;
+ /* XXX animato */
+#if 0
sipo->ipo= restore_pointer_by_name(newmain, (ID *)sipo->ipo, 0);
if(sipo->blocktype==ID_SEQ)
sipo->from= (ID *)find_sequence_from_ipo_helper(newmain, sipo->ipo);
@@ -4882,7 +4883,11 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene)
// not free sipo->ipokey, creates dependency with src/
if(sipo->editipo) MEM_freeN(sipo->editipo);
sipo->editipo= NULL;
+
#endif
+ if (ads->filter_grp) {
+ ads->filter_grp= restore_pointer_by_name(newmain, (ID *)ads->filter_grp, 0);
+ }
}
else if(sl->spacetype==SPACE_BUTS) {
SpaceButs *sbuts= (SpaceButs *)sl;
@@ -4908,6 +4913,10 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene)
SpaceAction *saction= (SpaceAction *)sl;
saction->action = restore_pointer_by_name(newmain, (ID *)saction->action, 1);
saction->ads.source= restore_pointer_by_name(newmain, (ID *)saction->ads.source, 1);
+
+ if(saction->ads.filter_grp) {
+ saction->ads.filter_grp= restore_pointer_by_name(newmain, (ID *)saction->ads.filter_grp, 0);
+ }
}
else if(sl->spacetype==SPACE_IMAGE) {
SpaceImage *sima= (SpaceImage *)sl;
@@ -4915,7 +4924,12 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene)
sima->image= restore_pointer_by_name(newmain, (ID *)sima->image, 1);
}
else if(sl->spacetype==SPACE_NLA){
- /* SpaceNla *snla= (SpaceNla *)sl; */
+ SpaceNla *snla= (SpaceNla *)sl;
+ bDopeSheet *ads= snla->ads;
+
+ if (ads->filter_grp) {
+ ads->filter_grp= restore_pointer_by_name(newmain, (ID *)ads->filter_grp, 0);
+ }
}
else if(sl->spacetype==SPACE_TEXT) {
SpaceText *st= (SpaceText *)sl;