[at-spi2-atk] Text, Value and Table Cell adaptors fixed



commit a084e019632c28f9eb61524294a31f3e659430c7
Author: Patryk Kaczmarek <patryk k samsung com>
Date:   Mon Sep 28 13:36:31 2015 +0200

    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 =
 "    <arg direction=\"in\" name=\"offset\" type=\"i\" />"
 "    <arg direction=\"in\" name=\"attributeName\" type=\"s\" />"
 "    <arg direction=\"out\" type=\"s\" />"
-"    <arg direction=\"out\" name=\"startOffset\" type=\"i\" />"
-"    <arg direction=\"out\" name=\"endOffset\" type=\"i\" />"
-"    <arg direction=\"out\" name=\"defined\" type=\"b\" />"
 "  </method>"
 ""
 "  <method name=\"GetAttributes\">"


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]