changeset 1233:b51874ca8642

fixed updating of selection after deleting the last image from the list
author nadvornik
date Fri, 02 Jan 2009 23:14:01 +0000
parents 98be4a5e36f8
children 31f50c1b6a9a
files src/view_file_icon.c src/view_file_list.c
diffstat 2 files changed, 17 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/src/view_file_icon.c	Fri Jan 02 22:57:09 2009 +0000
+++ b/src/view_file_icon.c	Fri Jan 02 23:14:01 2009 +0000
@@ -1036,6 +1036,7 @@
 static void vficon_select_closest(ViewFile *vf, FileData *sel_fd)
 {
 	GList *work;
+	IconData *id = NULL;
 	
 	if (sel_fd->parent) sel_fd = sel_fd->parent;
 	work = vf->list;
@@ -1043,21 +1044,22 @@
 	while (work)
 		{
 		gint match;
-		IconData *id = work->data;
-		FileData *fd = id->fd;
+		FileData *fd;
+		
+		id = work->data;
+		fd = id->fd;
 		work = work->next;
-		
 
 		match = filelist_sort_compare_filedata_full(fd, sel_fd, vf->sort_method, vf->sort_ascend);
 		
-		if (match >= 0)
-			{
-			vficon_select(vf, id);
-			vficon_send_layout_select(vf, id);
-			break;
-			}
+		if (match >= 0) break;
 		}
-
+	
+	if (id)
+		{
+		vficon_select(vf, id);
+		vficon_send_layout_select(vf, id);
+		}
 }
 
 
--- a/src/view_file_list.c	Fri Jan 02 22:57:09 2009 +0000
+++ b/src/view_file_list.c	Fri Jan 02 23:14:01 2009 +0000
@@ -1518,6 +1518,7 @@
 static void vflist_select_closest(ViewFile *vf, FileData *sel_fd)
 {
 	GList *work;
+	FileData *fd = NULL;
 	
 	if (sel_fd->parent) sel_fd = sel_fd->parent;
 	work = vf->list;
@@ -1525,19 +1526,16 @@
 	while (work)
 		{
 		gint match;
-		FileData *fd = work->data;
+		fd = work->data;
 		work = work->next;
-		
 
 		match = filelist_sort_compare_filedata_full(fd, sel_fd, vf->sort_method, vf->sort_ascend);
 		
-		if (match >= 0)
-			{
-			vflist_select_by_fd(vf, fd);
-			break;
-			}
+		if (match >= 0) break;
 		}
 
+	if (fd) vflist_select_by_fd(vf, fd);
+
 }
 
 void vflist_mark_to_selection(ViewFile *vf, gint mark, MarkToSelectionMode mode)