Use XDG_RUNTIME_DIR to hold sockets, and do not make a world-writable dir
[platform/core/uifw/at-spi2-atk.git] / atk-adaptor / adaptors / application-adaptor.c
index 71f146b..dc2231d 100644 (file)
 #include <atk/atk.h>
 #include <droute/droute.h>
 
-#include "common/spi-dbus.h"
+#include "spi-dbus.h"
 #include "introspection.h"
 
+/* for spi_global_app_data  is there a better way? */
+#include "../bridge.h"
+
 static dbus_bool_t
 impl_get_ToolkitName (DBusMessageIter * iter, void *user_data)
 {
@@ -40,6 +43,12 @@ impl_get_Version (DBusMessageIter * iter, void *user_data)
   return droute_return_v_string (iter, atk_get_toolkit_version ());
 }
 
+static dbus_bool_t
+impl_get_AtspiVersion (DBusMessageIter * iter, void *user_data)
+{
+  return droute_return_v_string (iter, "2.0");
+}
+
 static dbus_int32_t id;
 
 static dbus_bool_t
@@ -87,18 +96,42 @@ impl_GetLocale (DBusConnection * bus, DBusMessage * message, void *user_data)
   return NULL;
 }
 
+static DBusMessage *
+impl_get_app_bus(DBusConnection *bus, DBusMessage *msg, void *data)
+{
+DBusMessage *reply;
+
+  if (bus == spi_global_app_data->bus)
+    spi_atk_add_client (dbus_message_get_sender (msg));
+
+reply = dbus_message_new_method_return(msg);
+if (reply)
+    {
+      const char *retval = (g_getenv ("AT_SPI_CLIENT") ?
+                            "":
+                            spi_global_app_data->app_bus_addr);
+      if (!retval)
+        retval = "";
+      dbus_message_append_args(reply, DBUS_TYPE_STRING, &retval, DBUS_TYPE_INVALID);
+    }
+
+return reply;
+}
+
 static DRouteMethod methods[] = {
   {impl_registerToolkitEventListener, "registerToolkitEventListener"},
   {impl_registerObjectEventListener, "registerObjectEventListener"},
   {impl_pause, "pause"},
   {impl_resume, "resume"},
   {impl_GetLocale, "GetLocale"},
+  {impl_get_app_bus, "GetApplicationBusAddress"},
   {NULL, NULL}
 };
 
 static DRouteProperty properties[] = {
   {impl_get_ToolkitName, NULL, "ToolkitName"},
   {impl_get_Version, NULL, "Version"},
+  {impl_get_AtspiVersion, NULL, "AtspiVersion"},
   {impl_get_Id, impl_set_Id, "Id"},
   {NULL, NULL, NULL}
 };
@@ -114,7 +147,7 @@ void
 spi_initialize_application (DRoutePath * path)
 {
   droute_path_add_interface (path,
-                             SPI_DBUS_INTERFACE_APPLICATION,
+                             ATSPI_DBUS_INTERFACE_APPLICATION,
                              spi_org_a11y_atspi_Application,
                              methods, properties);
 };