file chooser: Avoid doing excess work
authorMatthias Clasen <mclasen@redhat.com>
Thu, 9 Jul 2015 01:06:58 +0000 (21:06 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 11 Jul 2015 05:15:42 +0000 (00:15 -0500)
Whenever we change directories, we unset the model, and then
we set a new model. This causes several emissions of
GtkTreeSelection::changed, for each of which we do a bunch
of work to update the path bar, the location entry, etc.

We can savely ignore some of these signals, and do less work.

gtk/gtkfilechooserwidget.c

index a09f0a50c2ad97cffccc8cb2b5780399be633f8c..6caae6c005d7f15895a79e745bd2e92e00d3cd95 100644 (file)
@@ -7584,6 +7584,9 @@ list_selection_changed (GtkTreeSelection     *selection,
 {
   GtkFileChooserWidgetPrivate *priv = impl->priv;
 
+  if (gtk_tree_view_get_model (GTK_TREE_VIEW (priv->browse_files_tree_view)) == NULL)
+    return;
+
   /* See if we are in the new folder editable row for Save mode */
   if (priv->operation_mode == OPERATION_MODE_BROWSE &&
       priv->action == GTK_FILE_CHOOSER_ACTION_SAVE)