From 94e7613c179960b71cb3e8541623bc0c87626f7c Mon Sep 17 00:00:00 2001 From: Patryk Kaczmarek Date: Mon, 28 Sep 2015 13:36:31 +0200 Subject: Text, Value and Table Cell adaptors fixed https://bugzilla.gnome.org/show_bug.cgi?id=755724 --- atk-adaptor/adaptors/table-cell-adaptor.c | 7 ++++-- atk-adaptor/adaptors/text-adaptor.c | 5 +--- atk-adaptor/adaptors/value-adaptor.c | 40 +++++++++++++++++++++++++++++++ atk-adaptor/introspection.c | 3 --- 4 files changed, 46 insertions(+), 9 deletions(-) diff --git a/atk-adaptor/adaptors/table-cell-adaptor.c b/atk-adaptor/adaptors/table-cell-adaptor.c index c557ed5..3418f4c 100644 --- a/atk-adaptor/adaptors/table-cell-adaptor.c +++ b/atk-adaptor/adaptors/table-cell-adaptor.c @@ -128,13 +128,16 @@ impl_get_Table (DBusMessageIter * iter, void *user_data) { AtkTableCell *cell = (AtkTableCell *) user_data; AtkObject *table; + DBusMessageIter iter_variant; g_return_val_if_fail (ATK_IS_TABLE_CELL (user_data), FALSE); table = atk_table_cell_get_table (cell); if (!table) return FALSE; - spi_object_append_reference (iter, table); + dbus_message_iter_open_container (iter, DBUS_TYPE_VARIANT, "(so)", &iter_variant); + spi_object_append_reference (&iter_variant, table); + dbus_message_iter_close_container (iter, &iter_variant); return TRUE; } @@ -147,7 +150,7 @@ impl_GetRowColumnSpan (DBusConnection * bus, DBusMessage * message, dbus_int32_t d_row, d_column, d_row_span, d_column_span; DBusMessage *reply; - g_return_val_if_fail (ATK_IS_TABLE (user_data), + g_return_val_if_fail (ATK_IS_TABLE_CELL (user_data), droute_not_yet_handled_error (message)); atk_table_cell_get_row_column_span (cell, &row, &column, &row_span, &column_span); diff --git a/atk-adaptor/adaptors/text-adaptor.c b/atk-adaptor/adaptors/text-adaptor.c index e80daf8..326e61a 100644 --- a/atk-adaptor/adaptors/text-adaptor.c +++ b/atk-adaptor/adaptors/text-adaptor.c @@ -396,10 +396,7 @@ impl_GetAttributeValue (DBusConnection * bus, DBusMessage * message, reply = dbus_message_new_method_return (message); if (reply) { - dbus_message_append_args (reply, DBUS_TYPE_STRING, &rv, DBUS_TYPE_INT32, - &startOffset, DBUS_TYPE_INT32, &endOffset, - DBUS_TYPE_BOOLEAN, &defined, - DBUS_TYPE_INVALID); + dbus_message_append_args (reply, DBUS_TYPE_STRING, &rv, DBUS_TYPE_INVALID); } atk_attribute_set_free (set); return reply; diff --git a/atk-adaptor/adaptors/value-adaptor.c b/atk-adaptor/adaptors/value-adaptor.c index 9767fc4..05d7303 100644 --- a/atk-adaptor/adaptors/value-adaptor.c +++ b/atk-adaptor/adaptors/value-adaptor.c @@ -40,6 +40,14 @@ impl_get_MinimumValue (DBusMessageIter * iter, void *user_data) gdouble dub; g_return_val_if_fail (ATK_IS_VALUE (user_data), FALSE); + AtkValueIface *iface = ATK_VALUE_GET_IFACE (value); + if (iface->get_range) + { + AtkRange *range = atk_value_get_range (value); + dub = atk_range_get_lower_limit (range); + atk_range_free (range); + return droute_return_v_double (iter, dub); + } g_value_init (&src, G_TYPE_DOUBLE); atk_value_get_minimum_value (value, &src); @@ -66,6 +74,15 @@ impl_get_MaximumValue (DBusMessageIter * iter, void *user_data) g_return_val_if_fail (ATK_IS_VALUE (user_data), FALSE); + AtkValueIface *iface = ATK_VALUE_GET_IFACE (value); + if (iface->get_range) + { + AtkRange *range = atk_value_get_range (value); + dub = atk_range_get_upper_limit (range); + atk_range_free (range); + return droute_return_v_double (iter, dub); + } + g_value_init (&src, G_TYPE_DOUBLE); atk_value_get_maximum_value (value, &src); g_value_init (&dest, G_TYPE_DOUBLE); @@ -87,6 +104,13 @@ impl_get_MinimumIncrement (DBusMessageIter * iter, void *user_data) g_return_val_if_fail (ATK_IS_VALUE (user_data), FALSE); + AtkValueIface *iface = ATK_VALUE_GET_IFACE (value); + if (iface->get_increment) + { + dub = atk_value_get_increment (value); + return droute_return_v_double (iter, dub); + } + g_value_init (&src, G_TYPE_DOUBLE); atk_value_get_minimum_increment (value, &src); g_value_init (&dest, G_TYPE_DOUBLE); @@ -108,6 +132,14 @@ impl_get_CurrentValue (DBusMessageIter * iter, void *user_data) g_return_val_if_fail (ATK_IS_VALUE (user_data), FALSE); + AtkValueIface *iface = ATK_VALUE_GET_IFACE (value); + if (iface->get_value_and_text) + { + gchar *text = NULL; + atk_value_get_value_and_text (value, &dub, &text); + return droute_return_v_double (iter, dub); + } + g_value_init (&src, G_TYPE_DOUBLE); atk_value_get_current_value (value, &src); g_value_init (&dest, G_TYPE_DOUBLE); @@ -137,6 +169,14 @@ impl_set_CurrentValue (DBusMessageIter * iter, void *user_data) return FALSE; } dbus_message_iter_get_basic (&iter_variant, &dub); + + AtkValueIface *iface = ATK_VALUE_GET_IFACE (value); + if (iface->set_value) + { + atk_value_set_value (value, dub); + return TRUE; + } + g_value_init (&src, G_TYPE_DOUBLE); g_value_set_double (&src, dub); diff --git a/atk-adaptor/introspection.c b/atk-adaptor/introspection.c index 07f891b..84fec4c 100644 --- a/atk-adaptor/introspection.c +++ b/atk-adaptor/introspection.c @@ -620,9 +620,6 @@ const char *spi_org_a11y_atspi_Text = " " " " " " -" " -" " -" " " " "" " " -- cgit v1.2.1