[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24802] trunk/blender/source/blender: 2. 5 internal bugfix: remove modal handlers before exiting the screen,

Brecht Van Lommel brecht at blender.org
Mon Nov 23 12:49:24 CET 2009


Revision: 24802
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24802
Author:   blendix
Date:     2009-11-23 12:49:23 +0100 (Mon, 23 Nov 2009)

Log Message:
-----------
2.5 internal bugfix: remove modal handlers before exiting the screen,
since these may be using it.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_regions.c
    trunk/blender/source/blender/windowmanager/intern/wm_files.c
    trunk/blender/source/blender/windowmanager/intern/wm_window.c

Modified: trunk/blender/source/blender/editors/interface/interface_regions.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_regions.c	2009-11-23 11:43:38 UTC (rev 24801)
+++ trunk/blender/source/blender/editors/interface/interface_regions.c	2009-11-23 11:49:23 UTC (rev 24802)
@@ -1321,9 +1321,7 @@
 
 void ui_popup_block_free(bContext *C, uiPopupBlockHandle *handle)
 {
-	/* XXX ton added, chrash on load file with popup open... need investigate */
-	if(CTX_wm_screen(C))
-		ui_remove_temporary_region(C, CTX_wm_screen(C), handle->region);
+	ui_remove_temporary_region(C, CTX_wm_screen(C), handle->region);
 	MEM_freeN(handle);
 }
 

Modified: trunk/blender/source/blender/windowmanager/intern/wm_files.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_files.c	2009-11-23 11:43:38 UTC (rev 24801)
+++ trunk/blender/source/blender/windowmanager/intern/wm_files.c	2009-11-23 11:49:23 UTC (rev 24802)
@@ -122,6 +122,8 @@
 		for(win= wm->windows.first; win; win= win->next) {
 		
 			CTX_wm_window_set(C, win);	/* needed by operator close callbacks */
+			WM_event_remove_handlers(C, &win->handlers);
+			WM_event_remove_handlers(C, &win->modalhandlers);
 			ED_screen_exit(C, win, win->screen);
 		}
 	}

Modified: trunk/blender/source/blender/windowmanager/intern/wm_window.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_window.c	2009-11-23 11:43:38 UTC (rev 24801)
+++ trunk/blender/source/blender/windowmanager/intern/wm_window.c	2009-11-23 11:49:23 UTC (rev 24802)
@@ -230,6 +230,8 @@
 	BLI_remlink(&wm->windows, win);
 	
 	wm_draw_window_clear(win);
+	WM_event_remove_handlers(C, &win->handlers);
+	WM_event_remove_handlers(C, &win->modalhandlers);
 	ED_screen_exit(C, win, win->screen);
 	wm_window_free(C, wm, win);
 	





More information about the Bf-blender-cvs mailing list