]> Pileus Git - ~andy/gtk/commitdiff
Added a "cursor_changed" signal, #62850.
authorJonathan Blandford <jrb@redhat.com>
Wed, 31 Oct 2001 19:08:09 +0000 (19:08 +0000)
committerJonathan Blandford <jrb@src.gnome.org>
Wed, 31 Oct 2001 19:08:09 +0000 (19:08 +0000)
Wed Oct 31 14:05:17 2001  Jonathan Blandford  <jrb@redhat.com>

* gtk/gtktreeview.c (gtk_tree_view_class_init): Added a
"cursor_changed" signal, #62850.

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtktreeview.c
gtk/gtktreeview.h

index a1c255d008a3b8f99fbb55c1c7f8567ae9612395..dc35752209cb526586bba5a12e68112bb19e3aa6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Oct 31 14:05:17 2001  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtktreeview.c (gtk_tree_view_class_init): Added a
+       "cursor_changed" signal, #62850.
+
 2001-10-31  Matt Wilson  <msw@redhat.com>
 
        * gtk/gtktreedatalist.c (_gtk_tree_data_list_alloc): after
index a1c255d008a3b8f99fbb55c1c7f8567ae9612395..dc35752209cb526586bba5a12e68112bb19e3aa6 100644 (file)
@@ -1,3 +1,8 @@
+Wed Oct 31 14:05:17 2001  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtktreeview.c (gtk_tree_view_class_init): Added a
+       "cursor_changed" signal, #62850.
+
 2001-10-31  Matt Wilson  <msw@redhat.com>
 
        * gtk/gtktreedatalist.c (_gtk_tree_data_list_alloc): after
index a1c255d008a3b8f99fbb55c1c7f8567ae9612395..dc35752209cb526586bba5a12e68112bb19e3aa6 100644 (file)
@@ -1,3 +1,8 @@
+Wed Oct 31 14:05:17 2001  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtktreeview.c (gtk_tree_view_class_init): Added a
+       "cursor_changed" signal, #62850.
+
 2001-10-31  Matt Wilson  <msw@redhat.com>
 
        * gtk/gtktreedatalist.c (_gtk_tree_data_list_alloc): after
index a1c255d008a3b8f99fbb55c1c7f8567ae9612395..dc35752209cb526586bba5a12e68112bb19e3aa6 100644 (file)
@@ -1,3 +1,8 @@
+Wed Oct 31 14:05:17 2001  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtktreeview.c (gtk_tree_view_class_init): Added a
+       "cursor_changed" signal, #62850.
+
 2001-10-31  Matt Wilson  <msw@redhat.com>
 
        * gtk/gtktreedatalist.c (_gtk_tree_data_list_alloc): after
index a1c255d008a3b8f99fbb55c1c7f8567ae9612395..dc35752209cb526586bba5a12e68112bb19e3aa6 100644 (file)
@@ -1,3 +1,8 @@
+Wed Oct 31 14:05:17 2001  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtktreeview.c (gtk_tree_view_class_init): Added a
+       "cursor_changed" signal, #62850.
+
 2001-10-31  Matt Wilson  <msw@redhat.com>
 
        * gtk/gtktreedatalist.c (_gtk_tree_data_list_alloc): after
index a1c255d008a3b8f99fbb55c1c7f8567ae9612395..dc35752209cb526586bba5a12e68112bb19e3aa6 100644 (file)
@@ -1,3 +1,8 @@
+Wed Oct 31 14:05:17 2001  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtktreeview.c (gtk_tree_view_class_init): Added a
+       "cursor_changed" signal, #62850.
+
 2001-10-31  Matt Wilson  <msw@redhat.com>
 
        * gtk/gtktreedatalist.c (_gtk_tree_data_list_alloc): after
index a1c255d008a3b8f99fbb55c1c7f8567ae9612395..dc35752209cb526586bba5a12e68112bb19e3aa6 100644 (file)
@@ -1,3 +1,8 @@
+Wed Oct 31 14:05:17 2001  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtktreeview.c (gtk_tree_view_class_init): Added a
+       "cursor_changed" signal, #62850.
+
 2001-10-31  Matt Wilson  <msw@redhat.com>
 
        * gtk/gtktreedatalist.c (_gtk_tree_data_list_alloc): after
index 2a1253817d0a5320c90b651df5378ef7654cd378..ca7c336b9f1cdbc4860ceec7b3b4b75b02de2325 100644 (file)
@@ -96,6 +96,7 @@ enum
   ROW_EXPANDED,
   ROW_COLLAPSED,
   COLUMNS_CHANGED,
+  CURSOR_CHANGED,
   MOVE_CURSOR,
   SELECT_ALL,
   SELECT_CURSOR_ROW,
@@ -691,6 +692,15 @@ gtk_tree_view_class_init (GtkTreeViewClass *class)
                   gtk_marshal_NONE__NONE,
                   G_TYPE_NONE, 0);
 
+  tree_view_signals[CURSOR_CHANGED] =
+    g_signal_new ("cursor_changed",
+                  G_TYPE_FROM_CLASS (object_class),
+                  G_SIGNAL_RUN_LAST,
+                  G_STRUCT_OFFSET (GtkTreeViewClass, cursor_changed),
+                  NULL, NULL,
+                  gtk_marshal_NONE__NONE,
+                  G_TYPE_NONE, 0);
+
   tree_view_signals[MOVE_CURSOR] =
     g_signal_new ("move_cursor",
                   G_TYPE_FROM_CLASS (object_class),
@@ -7989,23 +7999,25 @@ gtk_tree_view_real_set_cursor (GtkTreeView     *tree_view,
       gtk_tree_view_queue_draw_path (tree_view, cursor_path, NULL);
       gtk_tree_path_free (cursor_path);
     }
-  gtk_tree_row_reference_free (tree_view->priv->cursor);
 
+  gtk_tree_row_reference_free (tree_view->priv->cursor);
   gtk_get_current_event_state (&state);
 
   tree_view->priv->cursor = gtk_tree_row_reference_new_proxy (G_OBJECT (tree_view),
                                                              tree_view->priv->model,
                                                              path);
   _gtk_tree_view_find_node (tree_view, path, &tree, &node);
-  if (tree == NULL)
-    return;
+  if (tree != NULL)
+    {
+      if (clear_and_select && !((state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK))
+       _gtk_tree_selection_internal_select_node (tree_view->priv->selection,
+                                                 node, tree, path,
+                                                 state);
+      gtk_tree_view_clamp_node_visible (tree_view, tree, node);
+      gtk_tree_view_queue_draw_node (tree_view, tree, node, NULL);
+    }
 
-  if (clear_and_select && !((state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK))
-    _gtk_tree_selection_internal_select_node (tree_view->priv->selection,
-                                             node, tree, path,
-                                             state);
-  gtk_tree_view_clamp_node_visible (tree_view, tree, node);
-  gtk_tree_view_queue_draw_node (tree_view, tree, node, NULL);
+  g_signal_emit (G_OBJECT (tree_view), tree_view_signals[CURSOR_CHANGED], 0);
 }
 
 /**
index 343ceb0100668d26aa14e54de3db0454f72ef5f7..ee70438859c9b635a0d09f6b51acf074bbacd3fd 100644 (file)
@@ -84,6 +84,7 @@ struct _GtkTreeViewClass
                                           GtkTreeIter       *iter,
                                           GtkTreePath       *path);
   void     (* columns_changed)            (GtkTreeView       *tree_view);
+  void     (* cursor_changed)             (GtkTreeView       *tree_view);
 
   /* Key Binding signals */
   void     (* move_cursor)                (GtkTreeView       *tree_view,