2009-02-17 Mark Doffman <mark.doffman@codethink.co.uk>
[platform/core/uifw/at-spi2-atk.git] / atk-adaptor / tree-adaptor.c
index 3f85f9b..78ba624 100644 (file)
@@ -42,13 +42,6 @@ append_accessible_hf (gpointer key, gpointer obj_data, gpointer iter)
   spi_atk_append_accessible (ATK_OBJECT(obj_data), iter);
 }
 
-/* For use as a GFunc */
-static void
-append_accessible_lf (gpointer obj_data, gpointer iter)
-{
-  spi_atk_append_accessible (ATK_OBJECT(obj_data), iter);
-}
-
 /*---------------------------------------------------------------------------*/
 
 void
@@ -69,17 +62,14 @@ spi_emit_cache_removal (guint ref,  DBusConnection *bus)
 }
 
 void
-spi_emit_cache_update (const GList *accessibles, DBusConnection *bus)
+spi_emit_cache_update (AtkObject *accessible, DBusConnection *bus)
 {
    DBusMessage *message;
    DBusMessageIter iter;
-   DBusMessageIter iter_array;
    message = dbus_message_new_signal ("/org/freedesktop/atspi/tree", SPI_DBUS_INTERFACE_TREE, "updateAccessible");
 
    dbus_message_iter_init_append (message, &iter);
-   dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY, "(ooaoassusau)", &iter_array);
-   g_list_foreach ((GList *)accessibles, append_accessible_lf, &iter_array);
-   dbus_message_iter_close_container(&iter, &iter_array);
+   spi_atk_append_accessible (accessible, &iter);
 
    dbus_connection_send(bus, message, NULL);
 }
@@ -93,12 +83,21 @@ impl_getRoot (DBusConnection *bus, DBusMessage *message, void *user_data)
   AtkObject *root = atk_get_root();
   char *path;
   DBusMessage *reply;
+  gchar       *errmsg;
 
   if (!root)
-      return spi_dbus_general_error (message);
+    {
+      reply = dbus_message_new_error (message,
+                                      DBUS_ERROR_FAILED,
+                                      "No root accessible available");
+    }
   path = atk_dbus_object_to_path (root);
   if (!path)
-      return spi_dbus_general_error (message);
+    {
+      reply = dbus_message_new_error (message,
+                                      DBUS_ERROR_FAILED,
+                                      "No root accessible available");
+    }
   reply = dbus_message_new_method_return (message);
   dbus_message_append_args (reply, DBUS_TYPE_OBJECT_PATH, &path, DBUS_TYPE_INVALID);
   g_free (path);