]> Pileus Git - ~andy/gtk/commitdiff
Actually call the default signal handlers instead of calling the
authorMurray Cumming <murrayc@usa.net>
Wed, 17 Dec 2003 17:52:47 +0000 (17:52 +0000)
committerMurray Cumming <murrayc@src.gnome.org>
Wed, 17 Dec 2003 17:52:47 +0000 (17:52 +0000)
2003-12-07  Murray Cumming  <murrayc@usa.net>

        * gtk/gtktreemodel.c:
        (row_inserted_marshal, row_deleted_marshal, rows_reorderered_marshal)
        Actually call the default signal handlers instead of calling the
        marshallers themselves in an endless loop. These default signal handler
        callbacks are not actually set so this is only noticed by gtkmm at
        the moment. Bug 123923.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtktreemodel.c

index 946835be5fe9958c631db027ae10ce9e5058fce1..938775f54fa8079a1250fa10534c78f6918b7ed1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2003-12-07  Murray Cumming  <murrayc@usa.net>
+       * gtk/gtktreemodel.c:
+       (row_inserted_marshal, row_deleted_marshal, rows_reorderered_marshal)
+       Actually call the default signal handlers instead of calling the
+       marshallers themselves in an endless loop. These default signal handler
+       callbacks are not actually set so this is only noticed by gtkmm at
+       the moment. Bug 123923.
+
 2003-12-16  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilesystem.h (struct _GtkFileSystemIface): Added a
index 946835be5fe9958c631db027ae10ce9e5058fce1..938775f54fa8079a1250fa10534c78f6918b7ed1 100644 (file)
@@ -1,3 +1,12 @@
+2003-12-07  Murray Cumming  <murrayc@usa.net>
+       * gtk/gtktreemodel.c:
+       (row_inserted_marshal, row_deleted_marshal, rows_reorderered_marshal)
+       Actually call the default signal handlers instead of calling the
+       marshallers themselves in an endless loop. These default signal handler
+       callbacks are not actually set so this is only noticed by gtkmm at
+       the moment. Bug 123923.
+
 2003-12-16  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilesystem.h (struct _GtkFileSystemIface): Added a
index 946835be5fe9958c631db027ae10ce9e5058fce1..938775f54fa8079a1250fa10534c78f6918b7ed1 100644 (file)
@@ -1,3 +1,12 @@
+2003-12-07  Murray Cumming  <murrayc@usa.net>
+       * gtk/gtktreemodel.c:
+       (row_inserted_marshal, row_deleted_marshal, rows_reorderered_marshal)
+       Actually call the default signal handlers instead of calling the
+       marshallers themselves in an endless loop. These default signal handler
+       callbacks are not actually set so this is only noticed by gtkmm at
+       the moment. Bug 123923.
+
 2003-12-16  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilesystem.h (struct _GtkFileSystemIface): Added a
index 946835be5fe9958c631db027ae10ce9e5058fce1..938775f54fa8079a1250fa10534c78f6918b7ed1 100644 (file)
@@ -1,3 +1,12 @@
+2003-12-07  Murray Cumming  <murrayc@usa.net>
+       * gtk/gtktreemodel.c:
+       (row_inserted_marshal, row_deleted_marshal, rows_reorderered_marshal)
+       Actually call the default signal handlers instead of calling the
+       marshallers themselves in an endless loop. These default signal handler
+       callbacks are not actually set so this is only noticed by gtkmm at
+       the moment. Bug 123923.
+
 2003-12-16  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilesystem.h (struct _GtkFileSystemIface): Added a
index 946835be5fe9958c631db027ae10ce9e5058fce1..938775f54fa8079a1250fa10534c78f6918b7ed1 100644 (file)
@@ -1,3 +1,12 @@
+2003-12-07  Murray Cumming  <murrayc@usa.net>
+       * gtk/gtktreemodel.c:
+       (row_inserted_marshal, row_deleted_marshal, rows_reorderered_marshal)
+       Actually call the default signal handlers instead of calling the
+       marshallers themselves in an endless loop. These default signal handler
+       callbacks are not actually set so this is only noticed by gtkmm at
+       the moment. Bug 123923.
+
 2003-12-16  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilesystem.h (struct _GtkFileSystemIface): Added a
index c84e863a01ff93f50ef5291b9ca2f2f3a426d31d..96c8c48d4d97df2f56a1e2916d3774bb8f73a658 100644 (file)
@@ -206,25 +206,28 @@ row_inserted_marshal (GClosure          *closure,
                       gpointer           marshal_data)
 {
   GtkTreeModelIface *iface;
-  gpointer callback;
+
+  void (* row_inserted_callback) (GtkTreeModel *tree_model,
+                                  GtkTreePath *path,
+                                  GtkTreeIter *iter) = 0;
+            
   GObject *model = g_value_get_object (param_values + 0);
+  GtkTreePath *path = (GtkTreePath *)g_value_get_boxed (param_values + 1);
+  GtkTreeIter *iter = (GtkTreeIter *)g_value_get_boxed (param_values + 2);
 
   /* first, we need to update internal row references */
   gtk_tree_row_ref_inserted ((RowRefList *)g_object_get_data (model, ROW_REF_DATA_STRING),
-                             (GtkTreePath *)g_value_get_boxed (param_values + 1),
-                             (GtkTreeIter *)g_value_get_boxed (param_values + 2));
-
+                             path, iter);
+                               
   /* fetch the interface ->row_inserted implementation */
   iface = GTK_TREE_MODEL_GET_IFACE (model);
-  callback = G_STRUCT_MEMBER (gpointer, iface,
+  row_inserted_callback = G_STRUCT_MEMBER (gpointer, iface,
                               G_STRUCT_OFFSET (GtkTreeModelIface,
                                                row_inserted));
-  if (callback)
-    closure->marshal (closure,
-                      return_value,
-                      n_param_values, param_values,
-                      invocation_hint,
-                      callback);
+
+  /* Call that default signal handler, it if has been set */                                                         
+  if (row_inserted_callback)
+    row_inserted_callback (GTK_TREE_MODEL (model), path, iter);
 }
 
 static void
@@ -236,24 +239,25 @@ row_deleted_marshal (GClosure          *closure,
                      gpointer           marshal_data)
 {
   GtkTreeModelIface *iface;
-  gpointer callback;
+  void (* row_deleted_callback) (GtkTreeModel *tree_model,
+                                 GtkTreePath  *path) = 0;                                 
   GObject *model = g_value_get_object (param_values + 0);
+  GtkTreePath *path = (GtkTreePath *)g_value_get_boxed (param_values + 1);
 
   /* first, we need to update internal row references */
   gtk_tree_row_ref_deleted ((RowRefList *)g_object_get_data (model, ROW_REF_DATA_STRING),
-                            (GtkTreePath *)g_value_get_boxed (param_values + 1));
+                            path);
 
-  /* emit signal */
+  /* fetch the interface ->row_deleted implementation */
   iface = GTK_TREE_MODEL_GET_IFACE (model);
-  callback = G_STRUCT_MEMBER (gpointer, iface,
+  row_deleted_callback = G_STRUCT_MEMBER (gpointer, iface,
                               G_STRUCT_OFFSET (GtkTreeModelIface,
                                                row_deleted));
-  if (callback)
-    closure->marshal (closure,
-                      return_value,
-                      n_param_values, param_values,
-                      invocation_hint,
-                      callback);
+                              
+  /* Call that default signal handler, it if has been set */
+  if (row_deleted_callback)
+    row_deleted_callback (GTK_TREE_MODEL (model), path);
 }
 
 static void
@@ -265,26 +269,29 @@ rows_reordered_marshal (GClosure          *closure,
                         gpointer           marshal_data)
 {
   GtkTreeModelIface *iface;
-  gpointer callback;
+  void (* rows_reordered_callback) (GtkTreeModel *tree_model,
+                                    GtkTreePath  *path,
+                                    GtkTreeIter  *iter,
+                                    gint         *new_order);
+            
   GObject *model = g_value_get_object (param_values + 0);
-
+  GtkTreePath *path = (GtkTreePath *)g_value_get_boxed (param_values + 1);
+  GtkTreeIter *iter = (GtkTreeIter *)g_value_get_boxed (param_values + 2);
+  gint *new_order = (gint *)g_value_get_pointer (param_values + 3);
+  
   /* first, we need to update internal row references */
   gtk_tree_row_ref_reordered ((RowRefList *)g_object_get_data (model, ROW_REF_DATA_STRING),
-                              (GtkTreePath *)g_value_get_boxed (param_values + 1),
-                              (GtkTreeIter *)g_value_get_boxed (param_values + 2),
-                              (gint *)g_value_get_pointer (param_values + 3));
+                              path, iter, new_order);
 
-  /* emit signal */
+  /* fetch the interface ->rows_reordered implementation */
   iface = GTK_TREE_MODEL_GET_IFACE (model);
-  callback = G_STRUCT_MEMBER (gpointer, iface,
+  rows_reordered_callback = G_STRUCT_MEMBER (gpointer, iface,
                               G_STRUCT_OFFSET (GtkTreeModelIface,
                                                rows_reordered));
-  if (callback)
-    closure->marshal (closure,
-                      return_value,
-                      n_param_values, param_values,
-                      invocation_hint,
-                      callback);
+
+  /* Call that default signal handler, it if has been set */
+  if (rows_reordered_callback)
+    rows_reordered_callback (GTK_TREE_MODEL (model), path, iter, new_order);
 }
 
 /**