diff --git a/geeqie-1.0-vflist-refresh.patch b/geeqie-1.0-vflist-refresh.patch new file mode 100644 index 0000000..a5e0aa3 --- /dev/null +++ b/geeqie-1.0-vflist-refresh.patch @@ -0,0 +1,72 @@ +diff -Nur geeqie-1.0-orig/src/view_file_list.c geeqie-1.0/src/view_file_list.c +--- geeqie-1.0-orig/src/view_file_list.c 2010-02-17 22:21:19.000000000 +0100 ++++ geeqie-1.0/src/view_file_list.c 2011-04-15 13:47:10.727936556 +0200 +@@ -943,8 +943,6 @@ + GList *work; + GtkTreeIter iter; + gboolean valid; +- gint num_ordered = 0; +- gint num_prepended = 0; + + valid = gtk_tree_model_iter_children(GTK_TREE_MODEL(store), &iter, parent_iter); + +@@ -993,17 +991,11 @@ + + if (valid) + { +- num_ordered++; + gtk_tree_store_insert_before(store, &new, parent_iter, &iter); + } + else + { +- /* +- here should be used gtk_tree_store_append, but this function seems to be O(n) +- and it seems to be much faster to add new entries to the beginning and reorder later +- */ +- num_prepended++; +- gtk_tree_store_prepend(store, &new, parent_iter); ++ gtk_tree_store_append(store, &new, parent_iter); + } + + vflist_setup_iter(vf, store, &new, file_data_ref(fd)); +@@ -1026,7 +1018,6 @@ + } + else + { +- num_ordered++; + if (fd->version != old_version || force) + { + vflist_setup_iter(vf, store, &iter, fd); +@@ -1043,31 +1034,12 @@ + + while (valid) + { +- FileData *old_fd; ++ FileData *old_fd = NULL; + gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, FILE_COLUMN_POINTER, &old_fd, -1); + file_data_unref(old_fd); + + valid = gtk_tree_store_remove(store, &iter); + } +- +- /* move the prepended entries to the correct position */ +- if (num_prepended) +- { +- gint i; +- gint num_total = num_prepended + num_ordered; +- gint *new_order = g_malloc(num_total * sizeof(gint)); +- +- for (i = 0; i < num_total; i++) +- { +- if (i < num_ordered) +- new_order[i] = num_prepended + i; +- else +- new_order[i] = num_total - 1 - i; +- } +- gtk_tree_store_reorder(store, parent_iter, new_order); +- +- g_free(new_order); +- } + } + + void vflist_sort_set(ViewFile *vf, SortType type, gboolean ascend) diff --git a/geeqie.spec b/geeqie.spec index ddc5f35..d6bb156 100644 --- a/geeqie.spec +++ b/geeqie.spec @@ -3,7 +3,7 @@ Summary: Image browser and viewer Name: geeqie Version: 1.0 -Release: 9%{?dist} +Release: 10%{?dist} License: GPLv3 Group: User Interface/X # svn + autogen @@ -19,6 +19,8 @@ BuildRequires: autoconf Patch1: geeqie-1.0-exif-filecache.patch # bz 632243, reported upstream Patch2: geeqie-1.0-sidecars-case.patch +# +Patch3: geeqie-1.0-vflist-refresh.patch BuildRequires: gtk2-devel BuildRequires: lcms-devel @@ -59,6 +61,7 @@ done %patch0 -p1 -b .lfs-autoconf %patch1 -p1 -b .exif-filecache %patch2 -p1 -b .sidecars-case +%patch3 -p1 -b .vflist-refresh %build @@ -112,6 +115,9 @@ update-desktop-database &> /dev/null || : %changelog +* Fri Apr 15 2011 Michael Schwendt - 1.0-10 +- Let's see how we do with a simpler vflist_setup_iter_recursive(). + * Sat Mar 5 2011 Michael Schwendt - 1.0-9 - Patch filedata.c check_case_insensitive_ext to accept the first tested file name ext and not accept multiple combinations due to