Remove libxml2 check from configure.ac
[platform/core/uifw/at-spi2-atk.git] / atk-adaptor / object.c
index f1a47f5..0e6b6e2 100644 (file)
@@ -74,12 +74,33 @@ maybe_lease (AtkObject *obj)
  */
 
 void
+spi_object_append_null_reference (DBusMessageIter * iter)
+{
+  DBusMessageIter iter_struct;
+  const char *name;
+  const char *path = SPI_DBUS_PATH_NULL;
+
+  name = dbus_bus_get_unique_name (spi_global_app_data->bus);
+
+  dbus_message_iter_open_container (iter, DBUS_TYPE_STRUCT, NULL,
+                                    &iter_struct);
+  dbus_message_iter_append_basic (&iter_struct, DBUS_TYPE_STRING, &name);
+  dbus_message_iter_append_basic (&iter_struct, DBUS_TYPE_OBJECT_PATH, &path);
+  dbus_message_iter_close_container (iter, &iter_struct);
+}
+
+void
 spi_object_append_reference (DBusMessageIter * iter, AtkObject * obj)
 {
   DBusMessageIter iter_struct;
   const gchar *name;
   gchar *path;
 
+  if (!obj) {
+    spi_object_append_null_reference (iter);
+    return;
+  }
+
   maybe_lease (obj);
 
   name = dbus_bus_get_unique_name (spi_global_app_data->bus);
@@ -112,24 +133,8 @@ void
 spi_object_append_desktop_reference (DBusMessageIter * iter)
 {
   DBusMessageIter iter_struct;
-  const char *name = SPI_DBUS_NAME_REGISTRY;
-  const char *path = SPI_DBUS_PATH_ROOT;
-
-  dbus_message_iter_open_container (iter, DBUS_TYPE_STRUCT, NULL,
-                                    &iter_struct);
-  dbus_message_iter_append_basic (&iter_struct, DBUS_TYPE_STRING, &name);
-  dbus_message_iter_append_basic (&iter_struct, DBUS_TYPE_OBJECT_PATH, &path);
-  dbus_message_iter_close_container (iter, &iter_struct);
-}
-
-void
-spi_object_append_null_reference (DBusMessageIter * iter)
-{
-  DBusMessageIter iter_struct;
-  const char *name;
-  const char *path = "/org/at_spi/null";
-
-  name = dbus_bus_get_unique_name (spi_global_app_data->bus);
+  const char *name = spi_global_app_data->desktop_name;
+  const char *path = spi_global_app_data->desktop_path;
 
   dbus_message_iter_open_container (iter, DBUS_TYPE_STRUCT, NULL,
                                     &iter_struct);
@@ -171,6 +176,12 @@ spi_object_append_interfaces (DBusMessageIter * iter, AtkObject * obj)
       dbus_message_iter_append_basic (iter, DBUS_TYPE_STRING, &itf);
     }
 
+  if (atk_object_get_role (obj) == ATK_ROLE_APPLICATION)
+    {
+      itf = SPI_DBUS_INTERFACE_APPLICATION;
+      dbus_message_iter_append_basic (iter, DBUS_TYPE_STRING, &itf);
+    }
+
   if (ATK_IS_COMPONENT (obj))
     {
       itf = SPI_DBUS_INTERFACE_COMPONENT;
@@ -222,14 +233,14 @@ spi_object_append_interfaces (DBusMessageIter * iter, AtkObject * obj)
 #if 0
   if (ATK_IS_STREAMABLE_CONTENT (obj))
     {
-      itf = "org.freedesktop.atspi.StreamableContent";
+      itf = "org.a11y.atspi.StreamableContent";
       dbus_message_iter_append_basic (iter, DBUS_TYPE_STRING, &itf);
     }
 #endif
 
   if (ATK_IS_DOCUMENT (obj))
     {
-      itf = "org.freedesktop.atspi.Collection";
+      itf = "org.a11y.atspi.Collection";
       dbus_message_iter_append_basic (iter, DBUS_TYPE_STRING, &itf);
       itf = SPI_DBUS_INTERFACE_DOCUMENT;
       dbus_message_iter_append_basic (iter, DBUS_TYPE_STRING, &itf);