[Bf-blender-cvs] [98931d9] master: Fix T46764: Crash toggling region + fullscreen

Campbell Barton noreply at git.blender.org
Tue Nov 17 01:40:15 CET 2015


Commit: 98931d9e395f8835a339061b665f0752a853f95a
Author: Campbell Barton
Date:   Tue Nov 17 11:32:15 2015 +1100
Branches: master
https://developer.blender.org/rB98931d9e395f8835a339061b665f0752a853f95a

Fix T46764: Crash toggling region + fullscreen

===================================================================

M	source/blender/editors/screen/screen_edit.c

===================================================================

diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index a69ad44..461cdb2 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -1859,6 +1859,7 @@ void ED_screen_full_restore(bContext *C, ScrArea *sa)
  */
 ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *sa, const short state)
 {
+	wmWindowManager *wm = CTX_wm_manager(C);
 	bScreen *sc, *oldscreen;
 	ARegion *ar;
 
@@ -1866,9 +1867,15 @@ ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *sa, const s
 		/* ensure we don't have a button active anymore, can crash when
 		 * switching screens with tooltip open because region and tooltip
 		 * are no longer in the same screen */
-		for (ar = sa->regionbase.first; ar; ar = ar->next)
+		for (ar = sa->regionbase.first; ar; ar = ar->next) {
 			UI_blocklist_free(C, &ar->uiblocks);
 
+			if (ar->regiontimer) {
+				WM_event_remove_timer(wm, NULL, ar->regiontimer);
+				ar->regiontimer = NULL;
+			}
+		}
+
 		/* prevent hanging header prints */
 		ED_area_headerprint(sa, NULL);
 	}




More information about the Bf-blender-cvs mailing list