Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2021-10-22 02:12:01 +0300
committerCampbell Barton <ideasman42@gmail.com>2021-10-22 02:18:59 +0300
commit3e1baa7d539757b8e5fa870d4909354e0b5645b9 (patch)
tree4f557a747a061ca6df7455aaae123cc19204c958 /source/blender/windowmanager/intern/wm_window.c
parentbdbaf0301df630cefd3f753c9419646b3f858588 (diff)
Fix T92357: assert changing scenes while in edit mode
ScrArea.runtime.tool needs to be updated after switching scenes.
Diffstat (limited to 'source/blender/windowmanager/intern/wm_window.c')
-rw-r--r--source/blender/windowmanager/intern/wm_window.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index 89f85caa729..5f684a752d8 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -854,7 +854,8 @@ wmWindow *WM_window_open(bContext *C,
/* Set scene and view layer to match original window. */
STRNCPY(win->view_layer_name, view_layer->name);
if (WM_window_get_active_scene(win) != scene) {
- ED_screen_scene_change(C, win, scene);
+ /* No need to refresh the tool-system as the window has not yet finished being setup. */
+ ED_screen_scene_change(C, win, scene, false);
}
screen->temp = temp;
@@ -2271,13 +2272,13 @@ void WM_window_set_active_scene(Main *bmain, bContext *C, wmWindow *win, Scene *
/* Set scene in parent and its child windows. */
if (win_parent->scene != scene) {
- ED_screen_scene_change(C, win_parent, scene);
+ ED_screen_scene_change(C, win_parent, scene, true);
changed = true;
}
LISTBASE_FOREACH (wmWindow *, win_child, &wm->windows) {
if (win_child->parent == win_parent && win_child->scene != scene) {
- ED_screen_scene_change(C, win_child, scene);
+ ED_screen_scene_change(C, win_child, scene, true);
changed = true;
}
}