[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25365] trunk/blender/source/blender/ editors/space_view3d/view3d_view.c: Fix #20323: closing other window while BGE is running crashes.

Brecht Van Lommel brecht at blender.org
Mon Dec 14 15:16:39 CET 2009


Revision: 25365
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25365
Author:   blendix
Date:     2009-12-14 15:16:39 +0100 (Mon, 14 Dec 2009)

Log Message:
-----------
Fix #20323: closing other window while BGE is running crashes.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_view.c

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_view.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_view.c	2009-12-14 14:08:04 UTC (rev 25364)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_view.c	2009-12-14 14:16:39 UTC (rev 25365)
@@ -1709,6 +1709,7 @@
 	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 @@
 
 
 	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);





More information about the Bf-blender-cvs mailing list