From 8dfdd248b54b76c4a45db6f253398bc621142b42 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 24 Sep 2018 15:41:12 +0200 Subject: Fix T56895: crash loading template with Load UI unchecked. --- source/blender/blenkernel/intern/layer.c | 11 +++++++---- source/blender/windowmanager/intern/wm_files.c | 5 +++++ 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c index 707e1738af9..5b6a9f7092e 100644 --- a/source/blender/blenkernel/intern/layer.c +++ b/source/blender/blenkernel/intern/layer.c @@ -438,13 +438,16 @@ void BKE_view_layer_rename(Main *bmain, Scene *scene, ViewLayer *view_layer, con } } - /* fix all the animation data and windows which may link to this */ + /* Fix all the animation data and windows which may link to this. */ BKE_animdata_fix_paths_rename_all(NULL, "view_layers", oldname, view_layer->name); + /* WM can be missing on startup. */ wmWindowManager *wm = bmain->wm.first; - for (wmWindow *win = wm->windows.first; win; win = win->next) { - if (win->scene == scene && STREQ(win->view_layer_name, oldname)) { - STRNCPY(win->view_layer_name, view_layer->name); + if (wm) { + for (wmWindow *win = wm->windows.first; win; win = win->next) { + if (win->scene == scene && STREQ(win->view_layer_name, oldname)) { + STRNCPY(win->view_layer_name, view_layer->name); + } } } diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index 231adfc746a..798b505e257 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -1689,6 +1689,11 @@ static int wm_homefile_read_exec(bContext *C, wmOperator *op) RNA_property_string_get(op->ptr, prop_app_template, app_template_buf); app_template = app_template_buf; + if (!STREQ(app_template, U.app_template)) { + /* Always load UI when switching to another template. */ + G.fileflags &= ~G_FILE_NO_UI; + } + /* Always load preferences when switching templates with own preferences. */ use_userdef = wm_app_template_has_userpref(app_template) || wm_app_template_has_userpref(U.app_template); -- cgit v1.2.3