[Bf-blender-cvs] [3ee74fe] master: Fix for deleting screen w/ temp screens in list

Campbell Barton noreply at git.blender.org
Wed Aug 26 04:47:45 CEST 2015


Commit: 3ee74feb2b0f6988ed17a5583998fac768ce7021
Author: Campbell Barton
Date:   Wed Aug 26 12:41:23 2015 +1000
Branches: master
https://developer.blender.org/rB3ee74feb2b0f6988ed17a5583998fac768ce7021

Fix for deleting screen w/ temp screens in list

If the next screen to use was temporary, deleting the screen would fail.

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

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 430597e..90a3afc 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -1568,15 +1568,24 @@ void ED_screen_set(bContext *C, bScreen *sc)
 	}
 }
 
-static int ed_screen_used(wmWindowManager *wm, bScreen *sc)
+static bool ed_screen_used(wmWindowManager *wm, bScreen *sc)
 {
 	wmWindow *win;
 
-	for (win = wm->windows.first; win; win = win->next)
-		if (win->screen == sc)
-			return 1;
-	
-	return 0;
+	for (win = wm->windows.first; win; win = win->next) {
+		if (win->screen == sc) {
+			return true;
+		}
+
+		if (ELEM(win->screen->state, SCREENMAXIMIZED, SCREENFULL)) {
+			ScrArea *sa = win->screen->areabase.first;
+			if (sa->full == sc) {
+				return true;
+			}
+		}
+	}
+
+	return false;
 }
 
 /* only call outside of area/region loops */




More information about the Bf-blender-cvs mailing list