diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c index 29dd95995b..33fa73f7bc 100644 --- a/gtk/gtkfilechooserdefault.c +++ b/gtk/gtkfilechooserdefault.c @@ -6675,7 +6675,7 @@ file_system_model_got_thumbnail (GObject *object, GAsyncResult *res, gpointer da copy_attribute (info, queried, G_FILE_ATTRIBUTE_THUMBNAILING_FAILED); copy_attribute (info, queried, G_FILE_ATTRIBUTE_STANDARD_ICON); - _gtk_file_system_model_update_file (model, file, info, FALSE); + _gtk_file_system_model_update_file (model, file, info); g_object_unref (info); diff --git a/gtk/gtkfilesystemmodel.c b/gtk/gtkfilesystemmodel.c index 344d10df3d..49ae063902 100644 --- a/gtk/gtkfilesystemmodel.c +++ b/gtk/gtkfilesystemmodel.c @@ -187,6 +187,9 @@ struct _GtkFileSystemModelClass void (*finished_loading) (GtkFileSystemModel *model, GError *error); }; +static guint node_get_for_file (GtkFileSystemModel *model, + GFile *file); + static void add_file (GtkFileSystemModel *model, GFile *file, GFileInfo *info); @@ -1192,13 +1195,19 @@ gtk_file_system_model_query_done (GObject * object, GtkFileSystemModel *model = data; /* only a valid pointer if not cancelled */ GFile *file = G_FILE (object); GFileInfo *info; + guint id; info = g_file_query_info_finish (file, res, NULL); if (info == NULL) return; gdk_threads_enter (); - _gtk_file_system_model_update_file (model, file, info, TRUE); + + _gtk_file_system_model_update_file (model, file, info); + + id = node_get_for_file (model, file); + gtk_file_system_model_sort_node (model, id); + gdk_threads_leave (); } @@ -1855,7 +1864,6 @@ remove_file (GtkFileSystemModel *model, * @model: the model * @file: the file * @info: the new file info - * @requires_resort: FIXME: get rid of this argument * * Tells the file system model that the file changed and that the * new @info should be used for it now. If the file is not part of @@ -1864,8 +1872,7 @@ remove_file (GtkFileSystemModel *model, void _gtk_file_system_model_update_file (GtkFileSystemModel *model, GFile *file, - GFileInfo *info, - gboolean requires_resort) + GFileInfo *info) { FileModelNode *node; guint i, id; @@ -1897,9 +1904,6 @@ _gtk_file_system_model_update_file (GtkFileSystemModel *model, if (node->visible) emit_row_changed_for_node (model, id); - - if (requires_resort) - gtk_file_system_model_sort_node (model, id); } /** diff --git a/gtk/gtkfilesystemmodel.h b/gtk/gtkfilesystemmodel.h index cfc2d626c5..eaf8d3b44a 100644 --- a/gtk/gtkfilesystemmodel.h +++ b/gtk/gtkfilesystemmodel.h @@ -73,8 +73,7 @@ void _gtk_file_system_model_add_and_query_file (GtkFileSystemMode const char *attributes); void _gtk_file_system_model_update_file (GtkFileSystemModel *model, GFile *file, - GFileInfo *info, - gboolean requires_resort); + GFileInfo *info); void _gtk_file_system_model_set_show_hidden (GtkFileSystemModel *model, gboolean show_hidden);