[gtk+/bgo141154-filechooser-icon-view: 3/23] GtkFileChooserDefault: Setting selection multiple mode also for icon view



commit df98df6ceaff7b6a088897bfd836fb00b203ef0f
Author: Simo KivimÃki <simo kivimaki fi>
Date:   Mon Mar 21 21:32:25 2011 +0200

    GtkFileChooserDefault: Setting selection multiple mode also for icon view
    
    relates to https://bugzilla.gnome.org/show_bug.cgi?id=141154

 gtk/gtkfilechooserdefault.c |   32 +++++++++++++++++++++++---------
 1 files changed, 23 insertions(+), 9 deletions(-)
---
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
index 6bba6e9..1b47f8d 100644
--- a/gtk/gtkfilechooserdefault.c
+++ b/gtk/gtkfilechooserdefault.c
@@ -459,6 +459,8 @@ static void     current_view_set_file_model           (GtkFileChooserDefault *im
                                                        GtkTreeModel          *model);
 static void     current_view_set_cursor               (GtkFileChooserDefault *impl,
                                                        GtkTreePath           *path);
+static void     current_view_set_select_multiple      (GtkFileChooserDefault *impl,
+                                                       gboolean select_multiple);
 
 
 
@@ -5259,18 +5261,10 @@ set_select_multiple (GtkFileChooserDefault *impl,
 		     gboolean               select_multiple,
 		     gboolean               property_notify)
 {
-  GtkTreeSelection *selection;
-  GtkSelectionMode mode;
-
   if (select_multiple == impl->select_multiple)
     return;
 
-  mode = select_multiple ? GTK_SELECTION_MULTIPLE : GTK_SELECTION_SINGLE;
-
-  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (impl->browse_files_tree_view));
-  gtk_tree_selection_set_mode (selection, mode);
-
-  gtk_tree_view_set_rubber_banding (GTK_TREE_VIEW (impl->browse_files_tree_view), select_multiple);
+  current_view_set_select_multiple (impl, select_multiple);
 
   impl->select_multiple = select_multiple;
   g_object_notify (G_OBJECT (impl), "select-multiple");
@@ -10736,3 +10730,23 @@ current_view_set_cursor (GtkFileChooserDefault *impl, GtkTreePath *path)
   else
     g_assert_not_reached ();
 }
+
+static void
+current_view_set_select_multiple (GtkFileChooserDefault *impl, gboolean select_multiple)
+{
+  GtkTreeSelection *selection;
+  GtkSelectionMode mode;
+
+  mode = select_multiple ? GTK_SELECTION_MULTIPLE : GTK_SELECTION_BROWSE;
+
+  if (impl->view_mode == VIEW_MODE_LIST)
+    {
+      selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (impl->browse_files_tree_view));
+      gtk_tree_selection_set_mode (selection, mode);
+      gtk_tree_view_set_rubber_banding (GTK_TREE_VIEW (impl->browse_files_tree_view), select_multiple);
+    }
+  else if (impl->view_mode == VIEW_MODE_ICON)
+    gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (impl->browse_files_icon_view), mode);
+  else
+    g_assert_not_reached ();
+}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]