X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=atk-adaptor%2Faccessible-marshaller.c;h=4d247fc56b0c3fb7ed9bef97fb29d523c0e01758;hb=3e1f56f6e2c63ad90e13214ac13a2dc848e925b5;hp=2d5e4fd1c4d283feeedf1da8264a273b1658d5e1;hpb=23e1fbe67ae5d62868e64aa60b6807c6bc120f6a;p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git diff --git a/atk-adaptor/accessible-marshaller.c b/atk-adaptor/accessible-marshaller.c index 2d5e4fd..4d247fc 100644 --- a/atk-adaptor/accessible-marshaller.c +++ b/atk-adaptor/accessible-marshaller.c @@ -20,6 +20,7 @@ * Boston, MA 02111-1307, USA. */ +#include #include #include "common/spi-dbus.h" @@ -48,13 +49,13 @@ spi_dbus_append_name_and_path_inner (DBusMessageIter *iter, const char *bus_name } void -spi_dbus_append_name_and_path (DBusMessage *message, DBusMessageIter *iter, AtkObject *obj, gboolean unref) +spi_dbus_append_name_and_path (DBusMessage *message, DBusMessageIter *iter, AtkObject *obj, gboolean do_register, gboolean unref) { gchar *path; DBusMessageIter iter_struct; - const char *bus_name = dbus_message_get_sender (message); + const char *bus_name = dbus_bus_get_unique_name (atk_adaptor_app_data->bus); - path = atk_dbus_object_to_path (obj, FALSE); + path = atk_dbus_object_to_path (obj, do_register); if (!path) path = g_strdup (SPI_DBUS_PATH_NULL); @@ -79,8 +80,8 @@ spi_dbus_return_object (DBusMessage *message, AtkObject *obj, gboolean do_regist if (reply) { DBusMessageIter iter; - dbus_message_iter_init_append (message, &iter); - spi_dbus_append_name_and_path (message, &iter, obj, unref); + dbus_message_iter_init_append (reply, &iter); + spi_dbus_append_name_and_path (message, &iter, obj, do_register, unref); } return reply; @@ -129,6 +130,7 @@ spi_dbus_return_sub_object (DBusMessage *message, GObject *sub, GObject *contain dbus_bool_t spi_dbus_return_v_object (DBusMessageIter *iter, AtkObject *obj, int unref) { + DBusMessageIter iter_variant; char *path; path = atk_dbus_object_to_path (obj, FALSE); @@ -139,7 +141,9 @@ spi_dbus_return_v_object (DBusMessageIter *iter, AtkObject *obj, int unref) if (unref) g_object_unref (obj); - return droute_return_v_object (iter, path); + dbus_message_iter_open_container (iter, DBUS_TYPE_VARIANT, "(so)", &iter_variant); + spi_dbus_append_name_and_path_inner (&iter_variant, NULL, path); + dbus_message_iter_close_container (iter, &iter_variant); } /*---------------------------------------------------------------------------*/ @@ -312,6 +316,22 @@ spi_atk_append_accessible(AtkObject *obj, gpointer data) g_object_unref(G_OBJECT(child)); } } +#ifdef __ATK_PLUG_H__ + if (ATK_IS_SOCKET (obj) && atk_socket_is_occupied (ATK_SOCKET(obj))) + { + AtkSocket *socket = ATK_SOCKET(obj); + gchar *child_name, *child_path; + child_name = g_strdup (socket->embedded_plug_id); + child_path = strchr (child_name + 1, ':'); + if (child_path) + { + *(child_path++) = '\0'; + spi_dbus_append_name_and_path_inner (&iter_sub_array, child_name, child_path); + } + g_free (child_name); + } +#endif + dbus_message_iter_close_container (&iter_struct, &iter_sub_array); /* Marshall interfaces */