Merge branch 'master' into blender2.8
[blender.git] / source / blender / blenkernel / intern / blender.c
index 0b368df57eddf3c11552d21ab0eb00f1fbf319fd..d03be79baade1514ab06b866758df0f5865952fb 100644 (file)
@@ -262,6 +262,16 @@ void BKE_blender_userdef_app_template_data_swap(UserDef *userdef_a, UserDef *use
        SWAP(ListBase, userdef_a->id, userdef_b->id); \
 } ((void)0)
 
+#define FLAG_SWAP(id, ty, flags) { \
+       CHECK_TYPE(&(userdef_a->id), ty *); \
+       const ty f = flags; \
+       const ty a = userdef_a->id; \
+       const ty b = userdef_b->id; \
+        userdef_a->id = (userdef_a->id & ~f) | (b & f); \
+        userdef_b->id = (userdef_b->id & ~f) | (a & f); \
+} ((void)0)
+
+
        LIST_SWAP(uistyles);
        LIST_SWAP(uifonts);
        LIST_SWAP(themes);
@@ -276,9 +286,12 @@ void BKE_blender_userdef_app_template_data_swap(UserDef *userdef_a, UserDef *use
 
        DATA_SWAP(manipulator_flag);
 
+       FLAG_SWAP(uiflag, int, USER_LOCK_UI_LAYOUT);
+
 #undef SWAP_TYPELESS
-#undef LIST_SWAP
 #undef DATA_SWAP
+#undef LIST_SWAP
+#undef FLAG_SWAP
 }
 
 void BKE_blender_userdef_app_template_data_set(UserDef *userdef)