[nautilus] Add multiselect capability to list view
- From: Alexander Larsson <alexl src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [nautilus] Add multiselect capability to list view
- Date: Tue, 29 Sep 2009 12:36:15 +0000 (UTC)
commit 8fe1a569690abd8a472041886b883b55852d445f
Author: Marcus Carlson <marcus mejlamej nu>
Date: Tue Sep 29 14:33:13 2009 +0200
Add multiselect capability to list view
Use Ctrl+shift to do multiple range selects (#410497)
src/file-manager/fm-list-view.c | 31 +++++++++++++++++++++++++++++--
1 files changed, 29 insertions(+), 2 deletions(-)
---
diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c
index 35f1f4e..b48a40b 100644
--- a/src/file-manager/fm-list-view.c
+++ b/src/file-manager/fm-list-view.c
@@ -690,9 +690,36 @@ button_press_callback (GtkWidget *widget, GdkEventButton *event, gpointer callba
if (view->details->row_selected_on_button_down) {
call_parent = on_expander;
view->details->ignore_button_release = call_parent;
- } else if ((event->state & GDK_CONTROL_MASK) != 0) {
+ } else if ((event->state & GDK_CONTROL_MASK) != 0) {
+ GList *selected_rows;
+ GList *l;
+
call_parent = FALSE;
- gtk_tree_selection_select_path (selection, path);
+ if ((event->state & GDK_SHIFT_MASK) != 0) {
+ GtkTreePath *cursor;
+ gtk_tree_view_get_cursor (tree_view, &cursor, NULL);
+ if (cursor != NULL) {
+ gtk_tree_selection_select_range (selection, cursor, path);
+ } else {
+ gtk_tree_selection_select_path (selection, path);
+ }
+ } else {
+ gtk_tree_selection_select_path (selection, path);
+ }
+ selected_rows = gtk_tree_selection_get_selected_rows (selection, NULL);
+
+ /* This unselects everything */
+ gtk_tree_view_set_cursor (tree_view, path, NULL, FALSE);
+
+ /* So select it again */
+ l = selected_rows;
+ while (l != NULL) {
+ GtkTreePath *p = l->data;
+ l = l->next;
+ gtk_tree_selection_select_path (selection, p);
+ gtk_tree_path_free (p);
+ }
+ g_list_free (selected_rows);
} else {
view->details->ignore_button_release = on_expander;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]