Update to correspond with dbus spec
[platform/core/uifw/at-spi2-atk.git] / atk-adaptor / tree-adaptor.c
index c031d43..6f21fa6 100644 (file)
@@ -31,7 +31,7 @@
 #include "bridge.h"
 #include "accessible-register.h"
 #include "accessible-marshaller.h"
-#include "spi-common/spi-dbus.h"
+#include "common/spi-dbus.h"
 
 /*---------------------------------------------------------------------------*/
 
@@ -39,7 +39,9 @@
 static void
 append_accessible_hf (gpointer key, gpointer obj_data, gpointer iter)
 {
-  spi_atk_append_accessible (ATK_OBJECT(obj_data), iter);
+  /* Make sure it isn't a hyperlink */
+  if (ATK_IS_OBJECT (obj_data))
+    spi_atk_append_accessible (ATK_OBJECT(obj_data), iter);
 }
 
 /*---------------------------------------------------------------------------*/
@@ -48,47 +50,67 @@ void
 spi_emit_cache_removal (guint ref,  DBusConnection *bus)
 {
   DBusMessage *message;
-  DBusMessageIter iter;
-  gchar *path;
 
-  message = dbus_message_new_signal ("/org/freedesktop/atspi/tree", SPI_DBUS_INTERFACE_TREE, "removeAccessible");
+  if ((message = dbus_message_new_signal ("/org/freedesktop/atspi/tree",
+                                          SPI_DBUS_INTERFACE_TREE,
+                                          "RemoveAccessible"))) {
+    DBusMessageIter iter;
+    gchar *path;
 
-  dbus_message_iter_init_append (message, &iter);
+    dbus_message_iter_init_append (message, &iter);
 
-  path = atk_dbus_ref_to_path (ref);
-  dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &path);
+    path = atk_dbus_ref_to_path (ref);
+    dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &path);
 
-  dbus_connection_send(bus, message, NULL);
+    dbus_connection_send(bus, message, NULL);
+
+    dbus_message_unref (message);
+  }
 }
 
 void
 spi_emit_cache_update (AtkObject *accessible, DBusConnection *bus)
 {
-   DBusMessage *message;
-   DBusMessageIter iter;
-   message = dbus_message_new_signal ("/org/freedesktop/atspi/tree", SPI_DBUS_INTERFACE_TREE, "updateAccessible");
+  DBusMessage *message;
+
+  if ((message = dbus_message_new_signal ("/org/freedesktop/atspi/tree",
+                                          SPI_DBUS_INTERFACE_TREE,
+                                          "UpdateAccessible"))) {
+    DBusMessageIter iter;
+
+    dbus_message_iter_init_append (message, &iter);
+    spi_atk_append_accessible (accessible, &iter);
 
-   dbus_message_iter_init_append (message, &iter);
-   spi_atk_append_accessible (accessible, &iter);
+    dbus_connection_send(bus, message, NULL);
 
-   dbus_connection_send(bus, message, NULL);
+    dbus_message_unref (message);
+  }
 }
 
 
 /*---------------------------------------------------------------------------*/
 
 static DBusMessage *
-impl_getRoot (DBusConnection *bus, DBusMessage *message, void *user_data)
+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);
-  path = atk_dbus_object_to_path (root);
+    {
+      reply = dbus_message_new_error (message,
+                                      DBUS_ERROR_FAILED,
+                                      "No root accessible available");
+    }
+  path = atk_dbus_object_to_path (root, FALSE);
   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);
@@ -98,7 +120,7 @@ impl_getRoot (DBusConnection *bus, DBusMessage *message, void *user_data)
 /*---------------------------------------------------------------------------*/
 
 static DBusMessage *
-impl_getTree (DBusConnection *bus, DBusMessage *message, void *user_data)
+impl_GetTree (DBusConnection *bus, DBusMessage *message, void *user_data)
 {
   DBusMessage *reply;
   DBusMessageIter iter, iter_array;
@@ -115,8 +137,8 @@ impl_getTree (DBusConnection *bus, DBusMessage *message, void *user_data)
 /*---------------------------------------------------------------------------*/
 
 static DRouteMethod methods[] = {
-  {impl_getRoot, "getRoot"},
-  {impl_getTree, "getTree"},
+  {impl_GetRoot, "GetRoot"},
+  {impl_GetTree, "GetTree"},
   {NULL, NULL}
 };