Commit: 23beab242ad8a101cc567d42e10e340f779b9434
Author: Bastien Montagne
Date:   Tue May 26 17:02:45 2015 +0200
Branches: asset-engine
https://developer.blender.org/rB23beab242ad8a101cc567d42e10e340f779b9434

Fix asset engine resetting on every resize!

Only reset AE type to default in `file_init()` if current type is invalid!

Also, better handling of getting default AE type now.

===================================================================

M       source/blender/blenkernel/BKE_asset.h
M       source/blender/blenkernel/intern/asset.c
M       source/blender/editors/space_file/space_file.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_asset.h 
b/source/blender/blenkernel/BKE_asset.h
index aa23f8e..d20472b 100644
--- a/source/blender/blenkernel/BKE_asset.h
+++ b/source/blender/blenkernel/BKE_asset.h
@@ -163,6 +163,7 @@ void BKE_asset_engines_init(void);
 void BKE_asset_engines_exit(void);
 
 AssetEngineType *BKE_asset_engines_find(const char *idname);
+AssetEngineType *BKE_asset_engines_get_default(char *r_idname, const size_t 
len);
 
 /* Engine Instances */
 AssetEngine *BKE_asset_engine_create(AssetEngineType *type);
diff --git a/source/blender/blenkernel/intern/asset.c 
b/source/blender/blenkernel/intern/asset.c
index c2ea630..7b1d298 100644
--- a/source/blender/blenkernel/intern/asset.c
+++ b/source/blender/blenkernel/intern/asset.c
@@ -99,6 +99,19 @@ AssetEngineType *BKE_asset_engines_find(const char *idname)
        return type;
 }
 
+AssetEngineType *BKE_asset_engines_get_default(char *r_idname, const size_t 
len)
+{
+       AssetEngineType *type = asset_engines.first;
+
+       BLI_assert(type);
+
+       if (r_idname) {
+               BLI_strncpy(r_idname, type->idname, len);
+       }
+
+       return type;
+}
+
 /* Asset engine instances. */
 
 /* Create, Free */
diff --git a/source/blender/editors/space_file/space_file.c 
b/source/blender/editors/space_file/space_file.c
index 23f40b2..4181da2 100644
--- a/source/blender/editors/space_file/space_file.c
+++ b/source/blender/editors/space_file/space_file.c
@@ -76,6 +76,8 @@ static SpaceLink *file_new(const bContext *UNUSED(C))
        sfile = MEM_callocN(sizeof(SpaceFile), "initfile");
        sfile->spacetype = SPACE_FILE;
 
+       BKE_asset_engines_get_default(sfile->asset_engine, 
sizeof(sfile->asset_engine));
+
        /* header */
        ar = MEM_callocN(sizeof(ARegion), "header for file");
        BLI_addtail(&sfile->regionbase, ar);
@@ -166,9 +168,13 @@ static void file_init(wmWindowManager *UNUSED(wm), ScrArea 
*sa)
         */
        fsmenu_refresh_bookmarks_status(ED_fsmenu_get());
 
-       if (sfile->layout) sfile->layout->dirty = true;
+       if (!BKE_asset_engines_find(sfile->asset_engine)) {
+               BKE_asset_engines_get_default(sfile->asset_engine, 
sizeof(sfile->asset_engine));
+               ED_area_tag_refresh(sa);
+               ED_area_tag_redraw(sa);
+       }
 
-       BLI_strncpy(sfile->asset_engine, ((AssetEngineType 
*)asset_engines.first)->idname, sizeof(sfile->asset_engine));
+       if (sfile->layout) sfile->layout->dirty = true;
 }
 
 static void file_exit(wmWindowManager *wm, ScrArea *sa)
@@ -187,7 +193,7 @@ static SpaceLink *file_duplicate(SpaceLink *sl)
 {
        SpaceFile *sfileo = (SpaceFile *)sl;
        SpaceFile *sfilen = MEM_dupallocN(sl);
-       
+
        /* clear or remove stuff from old */
        sfilen->op = NULL; /* file window doesn't own operators */

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to