diff options
author | Julian Eisel <julian@blender.org> | 2020-06-19 20:55:17 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2020-07-02 10:11:20 +0300 |
commit | ef0ded4df38942f4c83001927c58a0a306cf3f34 (patch) | |
tree | bdf06106af96fc8bf21265efb852eabfeee9289e | |
parent | 910b4210454bd51aa86cbf63ed2dcd90c6e2b298 (diff) |
Fix: Crash when closing window while Outliner shows screens
Steps to reproduce were:
* From factory settings, change Outliner Display Mode to "Blender File"
* Open "Screens" item, make sure all listed screens are visible
* Open Preference window, close it
* Mouse hover the outliner -> crash
Fix is to force an Outliner tree rebuild when closing screens.
-rw-r--r-- | source/blender/editors/space_outliner/space_outliner.c | 2 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_window.c | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/source/blender/editors/space_outliner/space_outliner.c b/source/blender/editors/space_outliner/space_outliner.c index 9450136b6a6..deba4687231 100644 --- a/source/blender/editors/space_outliner/space_outliner.c +++ b/source/blender/editors/space_outliner/space_outliner.c @@ -215,7 +215,7 @@ static void outliner_main_region_listener(wmWindow *UNUSED(win), } break; case NC_SCREEN: - if (ELEM(wmn->data, ND_LAYER)) { + if (ELEM(wmn->data, ND_LAYOUTDELETE, ND_LAYER)) { ED_region_tag_redraw(region); } break; diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c index 8fb7e47cd45..1baf5ae7caf 100644 --- a/source/blender/windowmanager/intern/wm_window.c +++ b/source/blender/windowmanager/intern/wm_window.c @@ -471,6 +471,7 @@ void wm_window_close(bContext *C, wmWindowManager *wm, wmWindow *win) BLI_assert(BKE_workspace_layout_screen_get(layout) == screen); BKE_workspace_layout_remove(bmain, workspace, layout); + WM_event_add_notifier(C, NC_SCREEN | ND_LAYOUTDELETE, NULL); } } |