]> Pileus Git - ~andy/gtk/commitdiff
Set the cursor to the first selected row instead of always to the first
authorMatthias Clasen <mclasen@redhat.com>
Tue, 14 Sep 2004 19:37:48 +0000 (19:37 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Tue, 14 Sep 2004 19:37:48 +0000 (19:37 +0000)
2004-09-14  Matthias Clasen  <mclasen@redhat.com>

* gtk/gtktreeview.c (gtk_tree_view_focus_to_cursor): Set the cursor
to the first selected row instead of always to the first row if there
is no cursor.  (#143270, Jean Bréfort)

* tests/testfilechooser.c (main): Fix a few typos.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtktreeview.c
tests/testfilechooser.c

index ec8842a29500a610b7dae01dba8530ec0348551a..c3c001045866d967dcc8815168a831bf61c730b5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2004-09-14  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtktreeview.c (gtk_tree_view_focus_to_cursor): Set the cursor
+       to the first selected row instead of always to the first row if there
+       is no cursor.  (#143270, Jean Bréfort)
+
+       * tests/testfilechooser.c (main): Fix a few typos.
+
 2004-09-13  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkexpander.c: 
index ec8842a29500a610b7dae01dba8530ec0348551a..c3c001045866d967dcc8815168a831bf61c730b5 100644 (file)
@@ -1,3 +1,11 @@
+2004-09-14  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtktreeview.c (gtk_tree_view_focus_to_cursor): Set the cursor
+       to the first selected row instead of always to the first row if there
+       is no cursor.  (#143270, Jean Bréfort)
+
+       * tests/testfilechooser.c (main): Fix a few typos.
+
 2004-09-13  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkexpander.c: 
index ec8842a29500a610b7dae01dba8530ec0348551a..c3c001045866d967dcc8815168a831bf61c730b5 100644 (file)
@@ -1,3 +1,11 @@
+2004-09-14  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtktreeview.c (gtk_tree_view_focus_to_cursor): Set the cursor
+       to the first selected row instead of always to the first row if there
+       is no cursor.  (#143270, Jean Bréfort)
+
+       * tests/testfilechooser.c (main): Fix a few typos.
+
 2004-09-13  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkexpander.c: 
index ec8842a29500a610b7dae01dba8530ec0348551a..c3c001045866d967dcc8815168a831bf61c730b5 100644 (file)
@@ -1,3 +1,11 @@
+2004-09-14  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtktreeview.c (gtk_tree_view_focus_to_cursor): Set the cursor
+       to the first selected row instead of always to the first row if there
+       is no cursor.  (#143270, Jean Bréfort)
+
+       * tests/testfilechooser.c (main): Fix a few typos.
+
 2004-09-13  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkexpander.c: 
index 2f401ebaeb736dcae3d16e42a03d3e87a72d695b..cabda229076e67ade2b5c15703601d7c596952d2 100644 (file)
@@ -8319,7 +8319,22 @@ gtk_tree_view_focus_to_cursor (GtkTreeView *tree_view)
 
   if (cursor_path == NULL)
     {
-      cursor_path = gtk_tree_path_new_first ();
+      /* Consult the selection before defaulting to the first element */
+      GtkTreeSelection *selection;
+      GtkTreeModel     *model;
+      GList            *selected_rows;
+
+      selection = gtk_tree_view_get_selection (tree_view);
+      selected_rows = gtk_tree_selection_get_selected_rows (selection, &model);
+      if (selected_rows)
+       {
+          cursor_path = gtk_tree_path_copy((const GtkTreePath *)(selected_rows->data));
+         g_list_foreach (selected_rows, (GFunc)gtk_tree_path_free, NULL);
+         g_list_free (selected_rows);
+        }
+      else
+       cursor_path = gtk_tree_path_new_first ();
+
       gtk_tree_row_reference_free (tree_view->priv->cursor);
       tree_view->priv->cursor = NULL;
 
index 30b1ced267f786ef1e96a10ce75d08015fd4a33c..b6df9aced9af228390d185520de05816081a8142 100644 (file)
@@ -535,17 +535,17 @@ main (int argc, char **argv)
   g_signal_connect (button, "clicked",
                    G_CALLBACK (set_folder_nonexistent_cb), dialog);
 
-  button = gtk_button_new_with_label ("set_current_folder (\"/usr/nonexistent\"");
+  button = gtk_button_new_with_label ("set_current_folder (\"/usr/nonexistent\")");
   gtk_container_add (GTK_CONTAINER (vbbox), button);
   g_signal_connect (button, "clicked",
                    G_CALLBACK (set_folder_existing_nonexistent_cb), dialog);
 
-  button = gtk_button_new_with_label ("set_filename (\"/nonexistent\"");
+  button = gtk_button_new_with_label ("set_filename (\"/nonexistent\")");
   gtk_container_add (GTK_CONTAINER (vbbox), button);
   g_signal_connect (button, "clicked",
                    G_CALLBACK (set_filename_nonexistent_cb), dialog);
 
-  button = gtk_button_new_with_label ("set_filename (\"/usr/nonexistent\"");
+  button = gtk_button_new_with_label ("set_filename (\"/usr/nonexistent\")");
   gtk_container_add (GTK_CONTAINER (vbbox), button);
   g_signal_connect (button, "clicked",
                    G_CALLBACK (set_filename_existing_nonexistent_cb), dialog);