[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18071] branches/blender2.5/blender/source /blender/windowmanager/intern/wm_event_system.c: 2.5: fix/ workaround for crashes with open recent popup, due

Brecht Van Lommel brecht at blender.org
Fri Dec 26 12:32:21 CET 2008


Revision: 18071
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18071
Author:   blendix
Date:     2008-12-26 12:32:20 +0100 (Fri, 26 Dec 2008)

Log Message:
-----------
2.5: fix/workaround for crashes with open recent popup, due
to usage of free'd area/region.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c

Modified: branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c	2008-12-26 11:11:21 UTC (rev 18070)
+++ branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c	2008-12-26 11:32:20 UTC (rev 18071)
@@ -568,8 +568,15 @@
 	retval= handler->ui_handle(C, event, handler->ui_userdata);
 
 	/* putting back screen context */
-	CTX_wm_area_set(C, area);
-	CTX_wm_region_set(C, region);
+	if((retval != WM_UI_HANDLER_BREAK) || wm_event_always_pass(event)) {
+		CTX_wm_area_set(C, area);
+		CTX_wm_region_set(C, region);
+	}
+	else {
+		/* this special cases is for areas and regions that get removed */
+		CTX_wm_area_set(C, NULL);
+		CTX_wm_region_set(C, NULL);
+	}
 
 	if(retval == WM_UI_HANDLER_BREAK)
 		return WM_HANDLER_BREAK;





More information about the Bf-blender-cvs mailing list