X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=atk-adaptor%2Ftext.c;h=00ad9a98b8ded79b53160fe0f5177bf00bce7cce;hb=4471f18895646541db4b1dd61254a3a0023b776e;hp=aa4f7a60a94397233dc472946dbabfc9521cab56;hpb=ff143bfb6c3ca9e1a7362bd7f9c7c5eba31eb135;p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git diff --git a/atk-adaptor/text.c b/atk-adaptor/text.c index aa4f7a6..00ad9a9 100644 --- a/atk-adaptor/text.c +++ b/atk-adaptor/text.c @@ -242,6 +242,33 @@ impl_getTextAfterOffset (DBusConnection * bus, DBusMessage * message, } static DBusMessage * +impl_getCharacterAtOffset (DBusConnection * bus, DBusMessage * message, + void *user_data) +{ + AtkText *text = get_text (message); + dbus_int32_t offset; + dbus_int32_t ch; + DBusError error; + DBusMessage *reply; + + if (!text) + return spi_dbus_general_error (message); + dbus_error_init (&error); + if (!dbus_message_get_args + (message, &error, DBUS_TYPE_INT32, &offset, DBUS_TYPE_INVALID)) + { + return SPI_DBUS_RETURN_ERROR (message, &error); + } + ch = atk_text_get_character_at_offset (text, offset); + reply = dbus_message_new_method_return (message); + if (reply) + { + dbus_message_append_args (reply, DBUS_TYPE_INT32, &ch, DBUS_TYPE_INVALID); + } + return reply; +} + +static DBusMessage * impl_getAttributeValue (DBusConnection * bus, DBusMessage * message, void *user_data) { @@ -808,7 +835,7 @@ impl_getDefaultAttributeSet (DBusConnection * bus, DBusMessage * message, if (attributes) n_attributes = g_slist_length (attributes); - retval = (char **) malloc (n_attributes * sizeof (char *)); + retval = g_new (char *, n_attributes); for (i = 0; i < n_attributes; ++i) { @@ -835,6 +862,7 @@ static DRouteMethod methods[] = { {impl_getTextBeforeOffset, "getTextBeforeOffset"}, {impl_getTextAtOffset, "getTextAtOffset"}, {impl_getTextAfterOffset, "getTextAfterOffset"}, + {impl_getCharacterAtOffset, "getCharacterAtOffset"}, {impl_getAttributeValue, "getAttributeValue"}, {impl_getAttributes, "getAttributes"}, {impl_getDefaultAttributes, "getDefaultAttributes"},