[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