diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-12-14 17:16:39 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-12-14 17:16:39 +0300 |
commit | 32d5429e353b68ed90f2e32edc48a7841a2b4138 (patch) | |
tree | aa61fc94e181859717655b3ee552ab515bf1b178 /source | |
parent | 7b70ec6b9d088b6e7d5c2d937d9acd1ec026d38b (diff) |
Fix #20323: closing other window while BGE is running crashes.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_view.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index a569eff1ebe..a4f24e90080 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -1709,6 +1709,7 @@ static int game_engine_exec(bContext *C, wmOperator *unused) Scene *startscene = CTX_data_scene(C); ScrArea *sa, *prevsa= CTX_wm_area(C); ARegion *ar, *prevar= CTX_wm_region(C); + wmWindow *prevwin= CTX_wm_window(C); RegionView3D *rv3d; rcti cam_frame; @@ -1742,11 +1743,15 @@ static int game_engine_exec(bContext *C, wmOperator *unused) SaveState(C); + StartKetsjiShell(C, ar, &cam_frame, 1); - RestoreState(C); + /* restore context, in case it changed in the meantime, for + example by working in another window or closing it */ CTX_wm_region_set(C, prevar); CTX_wm_area_set(C, prevsa); + CTX_wm_window_set(C, prevwin); + RestoreState(C); //XXX restore_all_scene_cfra(scene_cfra_store); set_scene_bg(startscene); |