diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index 5d0d7bf20df..e0088416883 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -104,6 +104,10 @@ #include "BLF_translation.h" +#ifdef WITH_PYTHON +# include "BPY_extern.h" +#endif + static Camera *rna_Main_cameras_new(Main *bmain, const char *name) { ID *id = BKE_camera_add(bmain, name); @@ -138,7 +142,17 @@ static void rna_Main_scenes_remove(Main *bmain, bContext *C, ReportList *reports { bScreen *sc = CTX_wm_screen(C); if (sc->scene == scene) { + +#ifdef WITH_PYTHON + BPy_BEGIN_ALLOW_THREADS; +#endif + ED_screen_set_scene(C, sc, scene_new); + +#ifdef WITH_PYTHON + BPy_END_ALLOW_THREADS; +#endif + } BKE_scene_unlink(bmain, scene, scene_new); diff --git a/source/blender/makesrna/intern/rna_screen.c b/source/blender/makesrna/intern/rna_screen.c index 5902f3095fc..adea1f641a9 100644 --- a/source/blender/makesrna/intern/rna_screen.c +++ b/source/blender/makesrna/intern/rna_screen.c @@ -81,13 +81,13 @@ static void rna_Screen_scene_update(bContext *C, PointerRNA *ptr) /* exception: must use context so notifier gets to the right window */ if (sc->newscene) { #ifdef WITH_PYTHON - BPy_BEGIN_ALLOW_THREADS; + BPy_BEGIN_ALLOW_THREADS; #endif ED_screen_set_scene(C, sc, sc->newscene); #ifdef WITH_PYTHON - BPy_END_ALLOW_THREADS; + BPy_END_ALLOW_THREADS; #endif WM_event_add_notifier(C, NC_SCENE | ND_SCENEBROWSE, sc->newscene);