From: Shinwoo Kim Date: Wed, 14 Jun 2017 05:34:45 +0000 (+0900) Subject: "GetNavigableAtPoint" sends deputy object X-Git-Tag: submit/tizen/20170707.071852^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=70365a142fd7a1adb482456baed2473261be80e6;p=platform%2Fupstream%2Fat-spi2-atk.git "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 --- 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);