diff --git a/source/blender/blenloader/intern/versioning_userdef.c b/source/blender/blenloader/intern/versioning_userdef.c index 6ca7bba1ed2..a55568129c5 100644 --- a/source/blender/blenloader/intern/versioning_userdef.c +++ b/source/blender/blenloader/intern/versioning_userdef.c @@ -39,8 +39,21 @@ #include "BLO_readfile.h" /* Own include. */ +/* Disallow access to global userdef. */ #define U (_error_) +#define USER_VERSION_ATLEAST(ver, subver) MAIN_VERSION_ATLEAST(userdef, ver, subver) + +static void do_versions_theme(UserDef *userdef, bTheme *btheme) +{ + if (!USER_VERSION_ATLEAST(280, 20)) { + memcpy(btheme, &U_theme_default, sizeof(*btheme)); + } +} + +#undef USER_VERSION_ATLEAST + + /* patching UserDef struct and Themes */ void BLO_version_defaults_userpref_blend(Main *bmain, UserDef *userdef) { @@ -323,4 +336,8 @@ void BLO_version_defaults_userpref_blend(Main *bmain, UserDef *userdef) #endif /* this timer uses U */ // XXX reset_autosave(); + + for (bTheme *btheme = userdef->themes.first; btheme; btheme = btheme->next) { + do_versions_theme(userdef, btheme); + } }