2002-05-13 Marc Mulcahy <marc.mulcahy@sun.com>
authormarcm <marcm@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Mon, 13 May 2002 12:13:39 +0000 (12:13 +0000)
committermarcm <marcm@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Mon, 13 May 2002 12:13:39 +0000 (12:13 +0000)
* atk-bridge/bridge.c: Hooked up state-change event details.

git-svn-id: http://svn.gnome.org/svn/at-spi/trunk@297 e2bd861d-eb25-0410-b326-f6ed22b6b98c

ChangeLog
atk-bridge/bridge.c

index f922ac8..2672580 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2002-05-13  Marc Mulcahy <marc.mulcahy@sun.com>
+
+       * atk-bridge/bridge.c: Hooked up state-change event details.
+
 2002-05-11  Bill Haneman <bill.haneman@sun.com>
 
        * registryd/registry.c:
index 96f64fc..7ebc046 100644 (file)
@@ -53,6 +53,11 @@ spi_atk_bridge_window_event_listener (GSignalInvocationHint *signal_hint,
                                guint n_param_values,
                                const GValue *param_values,
                                gpointer data);
+static gboolean
+spi_atk_bridge_state_event_listener (GSignalInvocationHint *signal_hint,
+                                    guint n_param_values,
+                                    const GValue *param_values,
+                                    gpointer data);
 static gboolean spi_atk_bridge_signal_listener         (GSignalInvocationHint *signal_hint,
                                                        guint                  n_param_values,
                                                        const GValue          *param_values,
@@ -209,8 +214,10 @@ spi_atk_register_event_listeners (void)
   id = atk_add_global_event_listener (spi_atk_bridge_window_event_listener,
                                      "window:deactivate");
   g_array_append_val (listener_ids, id);
+  id = atk_add_global_event_listener (spi_atk_bridge_state_event_listener,
+                                     "Gtk:AtkObject:state-change");
+  g_array_append_val (listener_ids, id);
 
-  add_signal_listener ("Gtk:AtkObject:state-change");
   add_signal_listener ("Gtk:AtkObject:children-changed");
   add_signal_listener ("Gtk:AtkObject:visible-data-changed");
   add_signal_listener ("Gtk:AtkSelection:selection-changed");
@@ -438,7 +445,6 @@ spi_atk_bridge_property_event_listener (GSignalInvocationHint *signal_hint,
   return TRUE;
 }
 
-#if THIS_WILL_EVER_BE_USED
 static gboolean
 spi_atk_bridge_state_event_listener (GSignalInvocationHint *signal_hint,
                                     guint n_param_values,
@@ -446,7 +452,9 @@ spi_atk_bridge_state_event_listener (GSignalInvocationHint *signal_hint,
                                     gpointer data)
 {
   GObject *gobject;
-  AtkPropertyValues *values;
+  gchar *property_name;
+  gchar *type;
+  unsigned long detail1;
 #ifdef SPI_BRIDGE_DEBUG
   GSignalQuery signal_query;
   const gchar *name;
@@ -458,16 +466,19 @@ spi_atk_bridge_state_event_listener (GSignalInvocationHint *signal_hint,
 #endif
 
   gobject = g_value_get_object (param_values + 0);
-  values = (AtkPropertyValues*) g_value_get_pointer (param_values + 1);
-
+  property_name = g_strdup (g_value_get_string (param_values + 1));
+  detail1 = (g_value_get_boolean (param_values + 2))
+    ? 1 : 0;
+  type = g_strdup_printf ("object:state-change:%s", property_name);
   spi_atk_emit_eventv (gobject, 
-                      (unsigned long) values->old_value.data[0].v_ulong,
-                      (unsigned long) values->new_value.data[0].v_ulong,
-                      "object:%s:?", values->property_name);
-  
+                      detail1,
+                      0,
+                      type);
+  g_free (property_name);
+  g_free (type);
   return TRUE;
 }
-#endif
+
 
 static void
 spi_init_keystroke_from_atk_key_event (Accessibility_DeviceEvent  *keystroke,