diff options
author | Julian Eisel <eiseljulian@gmail.com> | 2018-03-07 23:18:16 +0300 |
---|---|---|
committer | Julian Eisel <eiseljulian@gmail.com> | 2018-03-07 23:18:16 +0300 |
commit | 8851460174a5603a0e51e856b00dfa212b0162b2 (patch) | |
tree | 63c8e0b4842d2c579a6746835c86712bd26bba4d /source/blender | |
parent | c00b42b710a5067073fb2cdb3b8612d43979026e (diff) |
Proper fix for User Preferences window crash
Reverts rBb9ae517794765d6a1660 and fixes the issue properly. Old fix could cause
NULL to be passed to functions that expect all arguments to be non-NULL.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/scene/scene_edit.c | 2 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_window.c | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/editors/scene/scene_edit.c b/source/blender/editors/scene/scene_edit.c index 6298f03a6b0..da720272f67 100644 --- a/source/blender/editors/scene/scene_edit.c +++ b/source/blender/editors/scene/scene_edit.c @@ -134,7 +134,7 @@ void ED_scene_change_update( CTX_data_eval_ctx(C, &eval_ctx_old); eObjectMode object_mode_old = workspace->object_mode; ViewLayer *layer_old = BKE_view_layer_from_workspace_get(scene_old, workspace); - Object *obact_old = layer_old ? OBACT(layer_old) : NULL; + Object *obact_old = OBACT(layer_old); bool obact_new_mode_exists = ED_object_mode_generic_exists(bmain->wm.first, obact_new, workspace->object_mode); diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c index d9a3f4f9bde..7fef86c006e 100644 --- a/source/blender/windowmanager/intern/wm_window.c +++ b/source/blender/windowmanager/intern/wm_window.c @@ -766,7 +766,11 @@ wmWindow *WM_window_open_temp(bContext *C, int x, int y, int sizex, int sizey, i WM_window_set_active_layout(win, workspace, layout); } - if (WM_window_get_active_scene(win) != scene) { + if (win->scene == NULL) { + win->scene = scene; + } + /* In case we reuse an already existing temp window (see win lookup above). */ + else if (WM_window_get_active_scene(win) != scene) { WM_window_change_active_scene(bmain, C, win, scene); } |