Fix accessibility of root apps on Linux
[platform/core/uifw/at-spi2-atk.git] / atk-adaptor / adaptors / cache-adaptor.c
index e6f950c..edbcb7b 100644 (file)
 #include "accessible-cache.h"
 #include "bridge.h"
 #include "object.h"
+#include "introspection.h"
 
 /* TODO - This should possibly be a common define */
-#define SPI_OBJECT_PREFIX "/org/at_spi"
+#define SPI_OBJECT_PREFIX "/org/a11y/atspi"
 #define SPI_CACHE_OBJECT_SUFFIX "/cache"
 #define SPI_CACHE_OBJECT_PATH SPI_OBJECT_PREFIX SPI_CACHE_OBJECT_SUFFIX
 
@@ -78,6 +79,8 @@ append_cache_item (AtkObject * obj, gpointer data)
   const char *name, *desc;
   dbus_uint32_t role;
 
+  g_object_ref (G_OBJECT (obj));
+
   set = atk_object_ref_state_set (obj);
   {
     AtkObject *application, *parent;
@@ -211,6 +214,7 @@ append_cache_item (AtkObject * obj, gpointer data)
   }
   dbus_message_iter_close_container (iter_array, &iter_struct);
   g_object_unref (set);
+  g_object_unref (obj);
 }
 
 /*---------------------------------------------------------------------------*/
@@ -275,8 +279,7 @@ emit_cache_add (SpiCache *cache, GObject * obj)
 static DBusMessage *
 impl_GetRoot (DBusConnection * bus, DBusMessage * message, void *user_data)
 {
-  return spi_object_return_reference (message,
-                                      g_object_ref (G_OBJECT (spi_global_app_data->root)));
+  return spi_object_return_reference (message, spi_global_app_data->root);
 }
 
 /*---------------------------------------------------------------------------*/
@@ -308,7 +311,7 @@ static DRouteMethod methods[] = {
 void
 spi_initialize_cache (DRoutePath * path)
 {
-  droute_path_add_interface (path, SPI_DBUS_INTERFACE_CACHE, methods, NULL);
+  droute_path_add_interface (path, SPI_DBUS_INTERFACE_CACHE, spi_org_a11y_atspi_Cache, methods, NULL);
 
   g_signal_connect (spi_global_cache,
                     "object-added",