[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33642] trunk/blender/source/blender/ editors/render/render_internal.c: Bugfix #25191

Ton Roosendaal ton at blender.org
Mon Dec 13 18:40:07 CET 2010


Revision: 33642
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33642
Author:   ton
Date:     2010-12-13 18:40:06 +0100 (Mon, 13 Dec 2010)

Log Message:
-----------
Bugfix #25191

F11 pushed a render window to back, but not popped it.
This also works for user prefs btw, not bad ;)

Modified Paths:
--------------
    trunk/blender/source/blender/editors/render/render_internal.c

Modified: trunk/blender/source/blender/editors/render/render_internal.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_internal.c	2010-12-13 17:23:03 UTC (rev 33641)
+++ trunk/blender/source/blender/editors/render/render_internal.c	2010-12-13 17:40:06 UTC (rev 33642)
@@ -843,35 +843,47 @@
 {
 	ScrArea *sa= find_area_showing_r_result(C);
 
-	/* test if we have a temp screen in front */
+	/* test if we have a temp screen active */
 	if(CTX_wm_window(C)->screen->temp) {
 		wm_window_lower(CTX_wm_window(C));
 	}
-	/* determine if render already shows */
-	else if(sa) {
-		SpaceImage *sima= sa->spacedata.first;
+	else { 
+		/* is there another window? */
+		wmWindow *win;
+		
+		for(win= CTX_wm_manager(C)->windows.first; win; win= win->next) {
+			if(win->screen->temp) {
+				wm_window_raise(win);
+				return OPERATOR_FINISHED;
+			}
+		}
+		
+		/* determine if render already shows */
+		if(sa) {
+			SpaceImage *sima= sa->spacedata.first;
 
-		if(sima->flag & SI_PREVSPACE) {
-			sima->flag &= ~SI_PREVSPACE;
+			if(sima->flag & SI_PREVSPACE) {
+				sima->flag &= ~SI_PREVSPACE;
 
-			if(sima->flag & SI_FULLWINDOW) {
-				sima->flag &= ~SI_FULLWINDOW;
-				ED_screen_full_prevspace(C, sa);
+				if(sima->flag & SI_FULLWINDOW) {
+					sima->flag &= ~SI_FULLWINDOW;
+					ED_screen_full_prevspace(C, sa);
+				}
+				else if(sima->next) {
+					/* workaround for case of double prevspace, render window
+					   with a file browser on top of it (same as in ED_area_prevspace) */
+					if(sima->next->spacetype == SPACE_FILE && sima->next->next)
+						ED_area_newspace(C, sa, sima->next->next->spacetype);
+					else
+						ED_area_newspace(C, sa, sima->next->spacetype);
+					ED_area_tag_redraw(sa);
+				}
 			}
-			else if(sima->next) {
-				/* workaround for case of double prevspace, render window
-				   with a file browser on top of it (same as in ED_area_prevspace) */
-				if(sima->next->spacetype == SPACE_FILE && sima->next->next)
-					ED_area_newspace(C, sa, sima->next->next->spacetype);
-				else
-					ED_area_newspace(C, sa, sima->next->spacetype);
-				ED_area_tag_redraw(sa);
-			}
 		}
+		else {
+			screen_set_image_output(C, event->x, event->y);
+		}
 	}
-	else {
-		screen_set_image_output(C, event->x, event->y);
-	}
 
 	return OPERATOR_FINISHED;
 }





More information about the Bf-blender-cvs mailing list