[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11941] trunk/blender/source/blender/src: == imagebrowser ==

Andrea Weikert elubie at gmx.net
Tue Sep 4 22:27:43 CEST 2007


Revision: 11941
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11941
Author:   elubie
Date:     2007-09-04 22:27:43 +0200 (Tue, 04 Sep 2007)

Log Message:
-----------
== imagebrowser ==
- fix: deleting bookmark didn't update .Bfs file (see tracker #7298)
- also fixed memleak, thanks to the guardedalloc :)

Modified Paths:
--------------
    trunk/blender/source/blender/src/editimasel.c
    trunk/blender/source/blender/src/fsmenu.c

Modified: trunk/blender/source/blender/src/editimasel.c
===================================================================
--- trunk/blender/source/blender/src/editimasel.c	2007-09-04 19:07:51 UTC (rev 11940)
+++ trunk/blender/source/blender/src/editimasel.c	2007-09-04 20:27:43 UTC (rev 11941)
@@ -1058,15 +1058,18 @@
 		case XKEY:
 			getmouseco_areawin(mval);			
 			if (simasel->flag & FILE_BOOKMARKS) {
-					if(mval[0]>simasel->bookmarkrect.xmin && mval[0]<simasel->bookmarkrect.xmax && mval[1]>simasel->bookmarkrect.ymin && mval[1]<simasel->bookmarkrect.ymax) {			
-						int nentries = fsmenu_get_nentries();
-						set_active_bookmark(simasel, mval[1]);
-						if (simasel->active_bookmark >= 0 && simasel->active_bookmark < nentries) {
-							fsmenu_remove_entry(simasel->active_bookmark);
-							simasel->active_bookmark = -1;
-							do_draw = 1;
-						}
+				if(mval[0]>simasel->bookmarkrect.xmin && mval[0]<simasel->bookmarkrect.xmax && mval[1]>simasel->bookmarkrect.ymin && mval[1]<simasel->bookmarkrect.ymax) {			
+					int nentries = fsmenu_get_nentries();
+					set_active_bookmark(simasel, mval[1]);
+					if (simasel->active_bookmark >= 0 && simasel->active_bookmark < nentries) {
+						char name[FILE_MAX];
+						BLI_make_file_string(G.sce, name, BLI_gethome(), ".Bfs");
+						fsmenu_remove_entry(simasel->active_bookmark);
+						fsmenu_write_file(name);
+						simasel->active_bookmark = -1;
+						do_draw = 1;
 					}
+				}
 			}			
 			break;
 		}		

Modified: trunk/blender/source/blender/src/fsmenu.c
===================================================================
--- trunk/blender/source/blender/src/fsmenu.c	2007-09-04 19:07:51 UTC (rev 11940)
+++ trunk/blender/source/blender/src/fsmenu.c	2007-09-04 20:27:43 UTC (rev 11941)
@@ -206,24 +206,21 @@
 		idx--;
 
 	if (fsme) {
-		if (prev) {
-			prev->next= fsme->next;
-		} else {
-			fsmenu= fsme->next;
-			if (fsme->save) {
-				if (prev) {
-					prev->next= fsme->next;
-				} else {
-					fsmenu= fsme->next;
-				}
-				// you should only be able to remove entries that were 
-				// not added by default
-				if (fsme->path) {
-					MEM_freeN(fsme->path);
-				}
-				MEM_freeN(fsme);
+		/* you should only be able to remove entries that were 
+		   not added by default, like windows drives.
+		   also separators (where path == NULL) shouldn't be removed */
+		if (fsme->save && fsme->path) {
+
+			/* remove fsme from list */
+			if (prev) {
+				prev->next= fsme->next;
+			} else {
+				fsmenu= fsme->next;
 			}
-		}		
+			/* free entry */
+			MEM_freeN(fsme->path);
+			MEM_freeN(fsme);
+		}
 	}
 }
 





More information about the Bf-blender-cvs mailing list