changeset 1700:bda2d599cc70

call gtk_tree_view_columns_autosize only when reall needed gtk_tree_view_columns_autosize is rather expensive, call it only afrer directory change or after user-requested refresh
author nadvornik
date Fri, 24 Jul 2009 12:45:42 +0000
parents 81ccb9cf7ef5
children 2309e6150e8c
files src/view_file_list.c
diffstat 1 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/view_file_list.c	Fri Jul 24 12:21:23 2009 +0000
+++ b/src/view_file_list.c	Fri Jul 24 12:45:42 2009 +0000
@@ -476,6 +476,7 @@
 
 	vflist_color_set(vf, VFLIST(vf)->click_fd, FALSE);
 	vf_refresh(vf);
+	gtk_tree_view_columns_autosize(GTK_TREE_VIEW(vf->listview));
 }
 
 void vflist_popup_destroy_cb(GtkWidget *widget, gpointer data)
@@ -1714,8 +1715,6 @@
 	column = gtk_tree_view_get_column(GTK_TREE_VIEW(listview), FILE_VIEW_COLUMN_DATE);
 	if (!column) return;
 	gtk_tree_view_column_set_visible(column, !multiline);
-
-	gtk_tree_view_columns_autosize(GTK_TREE_VIEW(listview));
 }
 
 static gboolean vflist_is_multiline(ViewFile *vf)
@@ -1950,6 +1949,7 @@
 
 gboolean vflist_set_fd(ViewFile *vf, FileData *dir_fd)
 {
+	gboolean ret;
 	if (!dir_fd) return FALSE;
 	if (vf->dir_fd == dir_fd) return TRUE;
 
@@ -1962,7 +1962,9 @@
 	filelist_free(vf->list);
 	vf->list = NULL;
 
-	return vf_refresh(vf);
+	ret = vf_refresh(vf);
+	gtk_tree_view_columns_autosize(GTK_TREE_VIEW(vf->listview));
+	return ret;
 }
 
 void vflist_destroy_cb(GtkWidget *widget, gpointer data)