From 70365a142fd7a1adb482456baed2473261be80e6 Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Wed, 14 Jun 2017 14:34:45 +0900 Subject: [PATCH] "GetNavigableAtPoint" sends deputy object The deputy means embedding side object works for embedded object. If there is no object at point on embedded side, then the deputy object should have highlight. So far the deputy object is elm_access, and the elm_access takes highlight. So there is no chance to have highlight on embedded side. This patch set reuires: at-spi2-core: 60727302f1a402bc5aa0c671af0cbe9ecddb6a86 elementary: b82beff73c41f52542d71fd6f4d9ad4ddcb4bacc Change-Id: I2cc17bc15f7d75c42dcf8ee437c459e93d84eb25 --- atk-adaptor/adaptors/accessible-adaptor.c | 25 +++++++++++++++++++++-- atk-adaptor/object.c | 17 --------------- atk-adaptor/object.h | 3 --- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/atk-adaptor/adaptors/accessible-adaptor.c b/atk-adaptor/adaptors/accessible-adaptor.c index ce719ce..9364f5b 100644 --- a/atk-adaptor/adaptors/accessible-adaptor.c +++ b/atk-adaptor/adaptors/accessible-adaptor.c @@ -641,7 +641,16 @@ impl_GetNeighbor (DBusConnection * bus, DBusMessage * message, void *user_data) AtkObject *root_object = (AtkObject*)spi_global_register_path_to_object(root_path); child = _calculate_neighbor (root_object, start, direction == 1, search_mode); - reply = spi_object_return_reference_and_recurse_flag (message, child, 0); + reply = dbus_message_new_method_return (message); + if (reply) + { + DBusMessageIter iter; + dbus_message_iter_init_append (reply, &iter); + spi_object_append_reference (&iter, child); + + unsigned char recurse = 0; + dbus_message_iter_append_basic (&iter, DBUS_TYPE_BYTE, &recurse); + } return reply; } @@ -663,7 +672,19 @@ impl_GetNavigableAtPoint (DBusConnection * bus, DBusMessage * message, return droute_invalid_arguments_error (message); } child = _calculate_navigable_accessible_at_point (object, coord_type == ATSPI_COORD_TYPE_SCREEN, x, y); - reply = spi_object_return_reference_and_recurse_flag (message, child, 0); + reply = dbus_message_new_method_return (message); + if (reply) + { + DBusMessageIter iter; + dbus_message_iter_init_append (reply, &iter); + spi_object_append_reference (&iter, child); + + unsigned char recurse = 0; + dbus_message_iter_append_basic (&iter, DBUS_TYPE_BYTE, &recurse); + + /* deputy */ + spi_object_append_null_reference (&iter); + } return reply; } diff --git a/atk-adaptor/object.c b/atk-adaptor/object.c index f053f24..e8a8af3 100644 --- a/atk-adaptor/object.c +++ b/atk-adaptor/object.c @@ -190,23 +190,6 @@ spi_object_return_reference (DBusMessage * msg, AtkObject * obj) return reply; } -DBusMessage * -spi_object_return_reference_and_recurse_flag (DBusMessage * msg, AtkObject * obj, unsigned char recurse) -{ - DBusMessage *reply; - - reply = dbus_message_new_method_return (msg); - if (reply) - { - DBusMessageIter iter; - dbus_message_iter_init_append (reply, &iter); - spi_object_append_reference (&iter, obj); - dbus_message_iter_append_basic (&iter, DBUS_TYPE_BYTE, &recurse); - } - - return reply; -} - DBusMessage * spi_hyperlink_return_reference (DBusMessage * msg, AtkHyperlink * obj) { diff --git a/atk-adaptor/object.h b/atk-adaptor/object.h index 14f0fa5..5f283bc 100644 --- a/atk-adaptor/object.h +++ b/atk-adaptor/object.h @@ -48,9 +48,6 @@ spi_object_append_null_reference (DBusMessageIter * iter); DBusMessage * spi_object_return_reference (DBusMessage * msg, AtkObject * obj); -DBusMessage * -spi_object_return_reference_and_recurse_flag (DBusMessage * msg, AtkObject * obj, unsigned char recurse); - DBusMessage * spi_hyperlink_return_reference (DBusMessage * msg, AtkHyperlink * obj); -- 2.34.1