[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14711] trunk/blender/source/blender: == bugfix ==

Andrea Weikert elubie at gmx.net
Tue May 6 21:29:38 CEST 2008


Revision: 14711
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14711
Author:   elubie
Date:     2008-05-06 21:29:37 +0200 (Tue, 06 May 2008)

Log Message:
-----------
== bugfix ==
[#10312] Append Link (image browser) bug if combined with Open window
The only place where the special handling in newspace is relevenant is when
opening it with the windowtype_pupmenu. All other overlaying windows( render in image space, scriptspace)
should leave imagebrowser/filebrowser space alone.

Modified Paths:
--------------
    trunk/blender/source/blender/include/BIF_imasel.h
    trunk/blender/source/blender/include/BSE_filesel.h
    trunk/blender/source/blender/src/filesel.c
    trunk/blender/source/blender/src/headerbuttons.c
    trunk/blender/source/blender/src/imasel.c
    trunk/blender/source/blender/src/space.c

Modified: trunk/blender/source/blender/include/BIF_imasel.h
===================================================================
--- trunk/blender/source/blender/include/BIF_imasel.h	2008-05-06 18:57:24 UTC (rev 14710)
+++ trunk/blender/source/blender/include/BIF_imasel.h	2008-05-06 19:29:37 UTC (rev 14711)
@@ -34,6 +34,7 @@
 struct ID;
 
 void free_imasel(struct SpaceImaSel *simasel);
+void reset_imaselspace(struct ScrArea *sa);
 
 void clever_numbuts_imasel(void);
 

Modified: trunk/blender/source/blender/include/BSE_filesel.h
===================================================================
--- trunk/blender/source/blender/include/BSE_filesel.h	2008-05-06 18:57:24 UTC (rev 14710)
+++ trunk/blender/source/blender/include/BSE_filesel.h	2008-05-06 19:29:37 UTC (rev 14711)
@@ -54,6 +54,7 @@
 void activate_databrowse_args(struct ID *id, int idcode, int fromcode, short *menup, void (*func)(char *, void *, void *), void *arg1, void *arg2);
 
 void filesel_prevspace(void);
+void reset_filespace(struct ScrArea *sa);
 void free_filesel_spec(char *dir);
 void winqreadfilespace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
 void main_to_filelist(struct SpaceFile *sfile);   

Modified: trunk/blender/source/blender/src/filesel.c
===================================================================
--- trunk/blender/source/blender/src/filesel.c	2008-05-06 18:57:24 UTC (rev 14710)
+++ trunk/blender/source/blender/src/filesel.c	2008-05-06 19:29:37 UTC (rev 14711)
@@ -1299,6 +1299,27 @@
 	sfile->ipotype= fromcode;
 }
 
+/* resets a previous file space type */
+/* is used when opening a filebrowser directly from windowtype_pupmenu,
+   since in that case we don't want any load/save/append/link action
+*/
+void reset_filespace(ScrArea *sa)
+{
+	if (sa->spacetype == SPACE_FILE) {
+		SpaceFile *sfile= sa->spacedata.first;
+			
+		if(sfile->type==FILE_MAIN) {
+			freefilelist(sfile);
+		} else {
+			sfile->type= FILE_UNIX;
+		}
+		
+		sfile->returnfunc= NULL;
+		sfile->title[0]= 0;
+		if(sfile->filelist) test_flags_file(sfile);
+	}
+}
+
 void filesel_prevspace()
 {
 	SpaceFile *sfile= curarea->spacedata.first;

Modified: trunk/blender/source/blender/src/headerbuttons.c
===================================================================
--- trunk/blender/source/blender/src/headerbuttons.c	2008-05-06 18:57:24 UTC (rev 14710)
+++ trunk/blender/source/blender/src/headerbuttons.c	2008-05-06 19:29:37 UTC (rev 14711)
@@ -1434,6 +1434,8 @@
 		break;
 	case B_NEWSPACE:
 		newspace(curarea, curarea->butspacetype);
+		reset_filespace(curarea);
+		reset_imaselspace(curarea);
 		break;
 	case B_LOADTEMP:	/* is button from space.c */
 		BIF_read_autosavefile();

Modified: trunk/blender/source/blender/src/imasel.c
===================================================================
--- trunk/blender/source/blender/src/imasel.c	2008-05-06 18:57:24 UTC (rev 14710)
+++ trunk/blender/source/blender/src/imasel.c	2008-05-06 19:29:37 UTC (rev 14711)
@@ -80,3 +80,26 @@
 	}
 }
 
+/* resets a previous imagebrowser space type */
+/* is used when opening an imagebrowser directly from windowtype_pupmenu,
+   since in that case we don't want any load/save/append/link action
+*/
+void reset_imaselspace(ScrArea *sa) 
+{
+	if(sa->spacetype==SPACE_IMASEL) {
+		SpaceImaSel *simasel= sa->spacedata.first;
+		if(simasel->type==FILE_MAIN) {
+			if (simasel->files) {
+				BIF_filelist_free(simasel->files);
+				BIF_filelist_settype(simasel->files, FILE_MAIN);
+			}
+		} else {
+			if (simasel->files) {
+				simasel->type= FILE_UNIX;
+				BIF_filelist_settype(simasel->files, simasel->type);
+			}
+		}
+		simasel->returnfunc= NULL;
+		simasel->title[0]= 0;
+	}
+}

Modified: trunk/blender/source/blender/src/space.c
===================================================================
--- trunk/blender/source/blender/src/space.c	2008-05-06 18:57:24 UTC (rev 14710)
+++ trunk/blender/source/blender/src/space.c	2008-05-06 19:29:37 UTC (rev 14711)
@@ -5611,6 +5611,7 @@
 	simasel->files = BIF_filelist_new();
 }
 
+
 /* ******************** SPACE: OOPS ********************** */
 
 extern void drawoopsspace(ScrArea *sa, void *spacedata);
@@ -6155,39 +6156,7 @@
 		}
 	}
 
-		
-	/* exception: filespace */
-	if(sa->spacetype==SPACE_FILE) {
-		SpaceFile *sfile= sa->spacedata.first;
-		
-		if(sfile->type==FILE_MAIN) {
-			freefilelist(sfile);
-		} else {
-			sfile->type= FILE_UNIX;
-		}
-		
-		sfile->returnfunc= NULL;
-		sfile->title[0]= 0;
-		if(sfile->filelist) test_flags_file(sfile);
-	}
-	/* exception: imasel space */
-	else if(sa->spacetype==SPACE_IMASEL) {
-		SpaceImaSel *simasel= sa->spacedata.first;
-		if(simasel->type==FILE_MAIN) {
-			if (simasel->files) {
-				BIF_filelist_free(simasel->files);
-				BIF_filelist_settype(simasel->files, FILE_MAIN);
-			}
-		} else {
-			if (simasel->files) {
-				simasel->type= FILE_UNIX;
-				BIF_filelist_settype(simasel->files, simasel->type);
-			}
-		}
-		simasel->returnfunc= NULL;
-		simasel->title[0]= 0;
-	}
-	else if(sa->spacetype==SPACE_OOPS) {
+	if(sa->spacetype==SPACE_OOPS) {
 		SpaceOops *so= sa->spacedata.first;
 		if(xtra && so->type!=SO_OUTLINER) {
 			so->type= SO_OUTLINER;





More information about the Bf-blender-cvs mailing list