summaryrefslogtreecommitdiff
path: root/gtk/gtkfilechooserdefault.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@ximian.com>2004-03-01 18:24:06 +0000
committerFederico Mena Quintero <federico@src.gnome.org>2004-03-01 18:24:06 +0000
commit0775cd28a3d666252bd3633797363e50cfa58908 (patch)
treee56ff18ba51c5dec48e13e2d0deacb5f49250061 /gtk/gtkfilechooserdefault.c
parentfa4514afc6e0f3e54339cd409947fc63d4f81848 (diff)
downloadgtk+-0775cd28a3d666252bd3633797363e50cfa58908.tar.gz
Test for filter_info.uri correctly. Fixes #135379, pointed out by Damon
2004-03-01 Federico Mena Quintero <federico@ximian.com> * gtk/gtkfilechooserdefault.c (list_model_filter_func): Test for filter_info.uri correctly. Fixes #135379, pointed out by Damon Chaplin. (shortcuts_get_index): Compute the bookmarks index correctly. Fixes #135714, pointed out by Damon Chaplin. (gtk_file_chooser_default_list_shortcut_folders): Handle the case with no shortcuts, and don't run off the end of the list if there are no bookmarks and their separator. Fixes #135572, patch by Damon Chaplin.
Diffstat (limited to 'gtk/gtkfilechooserdefault.c')
-rw-r--r--gtk/gtkfilechooserdefault.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
index 50f2d964e7..0277dcee9b 100644
--- a/gtk/gtkfilechooserdefault.c
+++ b/gtk/gtkfilechooserdefault.c
@@ -884,7 +884,7 @@ shortcuts_get_index (GtkFileChooserDefault *impl,
goto out;
/* If there are no bookmarks there won't be a separator */
- n += impl->num_shortcuts > 0 ? 1 : 0;
+ n += (impl->num_bookmarks > 0) ? 1 : 0;
if (where == SHORTCUTS_BOOKMARKS)
goto out;
@@ -2418,7 +2418,7 @@ list_model_filter_func (GtkFileSystemModel *model,
if (needed & GTK_FILE_FILTER_URI)
{
filter_info.uri = gtk_file_system_path_to_uri (impl->file_system, path);
- if (filter_info.filename)
+ if (filter_info.uri)
filter_info.contains |= GTK_FILE_FILTER_URI;
}
else
@@ -3076,6 +3076,9 @@ gtk_file_chooser_default_list_shortcut_folders (GtkFileChooser *chooser)
int i;
GSList *list;
+ if (impl->num_shortcuts == 0)
+ return NULL;
+
pos = shortcuts_get_pos_for_shortcut_folder (impl, 0);
if (!gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (impl->shortcuts_model), &iter, NULL, pos))
g_assert_not_reached ();
@@ -3091,8 +3094,11 @@ gtk_file_chooser_default_list_shortcut_folders (GtkFileChooser *chooser)
list = g_slist_prepend (list, gtk_file_path_copy (shortcut));
- if (!gtk_tree_model_iter_next (GTK_TREE_MODEL (impl->shortcuts_model), &iter))
- g_assert_not_reached ();
+ if (i != impl->num_shortcuts - 1)
+ {
+ if (!gtk_tree_model_iter_next (GTK_TREE_MODEL (impl->shortcuts_model), &iter))
+ g_assert_not_reached ();
+ }
}
return g_slist_reverse (list);