[PATCH] Block selection_changed in fm_list_view_set_selection
- From: Martin Wehner <martin wehner epost de>
- To: nautilus-list <nautilus-list gnome org>
- Subject: [PATCH] Block selection_changed in fm_list_view_set_selection
- Date: Fri, 01 Oct 2004 18:26:22 +0200
Try Select Pattern("*") in a huge list view (or change from icon to list
view with a large selection).
When you call fm_list_view_set_selection with a large selection, you get
a selection_changed notification for every file in the selection. This
patch blocks the selection_changed handler and sends one notification
afterwards.
Martin
? mkinstalldirs
Index: src/file-manager/fm-list-view.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/file-manager/fm-list-view.c,v
retrieving revision 1.228
diff -u -p -w -r1.228 fm-list-view.c
--- src/file-manager/fm-list-view.c 6 Sep 2004 09:00:51 -0000 1.228
+++ src/file-manager/fm-list-view.c 1 Oct 2004 16:24:32 -0000
@@ -1415,6 +1415,8 @@ fm_list_view_set_selection (FMDirectoryV
list_view = FM_LIST_VIEW (view);
tree_selection = gtk_tree_view_get_selection (list_view->details->tree_view);
+ g_signal_handlers_block_by_func (tree_selection, list_selection_changed_callback, view);
+
gtk_tree_selection_unselect_all (tree_selection);
for (node = selection; node != NULL; node = node->next) {
file = node->data;
@@ -1422,6 +1424,9 @@ fm_list_view_set_selection (FMDirectoryV
gtk_tree_selection_select_iter (tree_selection, &iter);
}
}
+
+ g_signal_handlers_unblock_by_func (tree_selection, list_selection_changed_callback, view);
+ fm_directory_view_notify_selection_changed (view);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]