- s = atk_object_get_name (ATK_OBJECT (gobject));
- spi_init_any_string (&any, (char **) &s);
-
- spi_atk_emit_eventv (gobject, 0, 0, &any,
- "window:%s", name);
+ s = atk_object_get_name (obj);
+ sig_name = g_strdup_printf("window_%s", name);
+ emit(obj, sig_name, DBUS_TYPE_STRING, &s, DBUS_TYPE_INVALID);
+ g_free(sig_name);
+
+ return TRUE;
+}
+
+static gboolean
+spi_atk_bridge_document_event_listener (GSignalInvocationHint *signal_hint,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer data)
+{
+ AtkObject *obj;
+ GSignalQuery signal_query;
+ const gchar *name, *s;
+ gchar *sig_name;
+#ifdef SPI_BRIDGE_DEBUG
+ const gchar *s2;
+#endif
+
+ g_signal_query (signal_hint->signal_id, &signal_query);
+
+ name = signal_query.signal_name;
+
+#ifdef SPI_BRIDGE_DEBUG
+ s2 = g_type_name (G_OBJECT_TYPE (g_value_get_object (param_values + 0)));
+ s = atk_object_get_name (ATK_OBJECT (g_value_get_object (param_values + 0)));
+ fprintf (stderr, "Received signal %s:%s from object %s (gail %s)\n",
+ g_type_name (signal_query.itype), name, s ? s : "<NULL>" , s2);
+#endif
+
+ obj = ATK_OBJECT(g_value_get_object (param_values + 0));
+
+ s = atk_object_get_name (obj);
+ sig_name = g_strdup_printf("document_%s", name);
+ emit(obj, sig_name, DBUS_TYPE_STRING, &s, DBUS_TYPE_INVALID);
+ g_free(sig_name);