2009-04-15 Mike Gorse <mgorse@novell.com>
authorMike Gorse <mgorse@boston.site>
Wed, 15 Apr 2009 13:44:11 +0000 (08:44 -0500)
committerMark Doffman <mdoff@silver-wind.(none)>
Tue, 21 Apr 2009 16:16:02 +0000 (17:16 +0100)
* atk-adaptor/accessible-marshaller.c: Return SPI_DBUS_PATH_NULL
for a NULL object.
Fix call to dbus_message_iter_append_basic.

* atk-adaptor/accessible-register.c:

* atk-adaptor/editabletext-adaptor.c: Have copyText return a value.

* atk-adaptor/editabletext-adaptor.c: Fix uninitialized variable in
getAttributeValue.
Fix parameter type in getBoundedRanges, and open the appropriate
container when returning a value.

* value-adaptor.c: Return variants to conform with Properties iface.

* droute/droute.c: Throw exception if get fails.
When setting a property, correctly initialize the iter before reading.

* registry/deviceeventcontroller.c: deviceListener ->
deviceEventListener.

* spi-common/spi-dbus.h: Set SPI_DBUS_PATH_NULL to
/org/freedesktop/atspi/accessible/null.

atk-adaptor/accessible-marshaller.c
atk-adaptor/editabletext-adaptor.c
atk-adaptor/text-adaptor.c
atk-adaptor/value-adaptor.c
droute/droute.c
registryd/deviceeventcontroller.c
spi-common/spi-dbus.h

index 6e9de23..30d6b33 100644 (file)
@@ -40,15 +40,21 @@ spi_dbus_return_object (DBusMessage *message, AtkObject *obj, gboolean unref)
 
   path = atk_dbus_object_to_path (obj);
 
-  if (unref)
+  if (obj && unref)
     g_object_unref (obj);
 
+  if (!path)
+    path = g_strdup (SPI_DBUS_PATH_NULL);
+
   reply = dbus_message_new_method_return (message);
   if (reply)
     {
-      dbus_message_append_args (reply, DBUS_TYPE_OBJECT_PATH, path,
+      dbus_message_append_args (reply, DBUS_TYPE_OBJECT_PATH, &path,
                                 DBUS_TYPE_INVALID);
     }
+
+  g_free (path);
+
   return reply;
 }
 
index ce0f8e3..4f2f484 100644 (file)
@@ -138,7 +138,7 @@ impl_copyText (DBusConnection * bus, DBusMessage * message, void *user_data)
       return droute_invalid_arguments_error (message);
     }
   atk_editable_text_copy_text (editable, startPos, endPos);
-  return NULL;
+  return dbus_message_new_method_return (message);
 }
 
 static DBusMessage *
index ebbea28..ae3eed6 100644 (file)
@@ -262,7 +262,7 @@ impl_getAttributeValue (DBusConnection * bus, DBusMessage * message,
   dbus_int32_t startOffset, endOffset;
   dbus_bool_t defined;
   gint intstart_offset = 0, intend_offset = 0;
-  char *rv;
+  char *rv = NULL;
   DBusError error;
   DBusMessage *reply;
   AtkAttributeSet *set;
@@ -667,7 +667,7 @@ impl_getBoundedRanges (DBusConnection * bus, DBusMessage * message,
   dbus_error_init (&error);
   if (!dbus_message_get_args
       (message, &error, DBUS_TYPE_INT32, &x, DBUS_TYPE_INT32, &y,
-       DBUS_TYPE_INT32, &height, DBUS_TYPE_INT32, &width, DBUS_TYPE_INT32,
+       DBUS_TYPE_INT32, &height, DBUS_TYPE_INT32, &width, DBUS_TYPE_INT16,
        &coordType, DBUS_TYPE_INT32, &xClipType, DBUS_TYPE_INT32, &yClipType,
        DBUS_TYPE_INVALID))
     {
@@ -707,7 +707,7 @@ impl_getBoundedRanges (DBusConnection * bus, DBusMessage * message,
                * unilaterally muck with the spec and remove it, so I'll just
                * throw in a dummy value */
               if (dbus_message_iter_open_container
-                  (&array, DBUS_TYPE_VARIANT, "i", &variant))
+                  (&struc, DBUS_TYPE_VARIANT, "i", &variant))
                 {
                   dbus_uint32_t dummy = 0;
                   dbus_message_iter_append_basic (&variant, DBUS_TYPE_INT32,
index 4c0c8d8..68631de 100644 (file)
@@ -46,8 +46,7 @@ impl_get_minimumValue (DBusMessageIter * iter,
   if (g_value_transform (&src, &dest))
     {
       dub = g_value_get_double (&dest);
-      dbus_message_iter_append_basic (iter, DBUS_TYPE_DOUBLE, &dub);
-      return TRUE;
+      return droute_return_v_double (iter, dub);
     }
   else
     {
@@ -72,8 +71,7 @@ impl_get_maximumValue (DBusMessageIter * iter,
   if (g_value_transform (&src, &dest))
     {
       dub = g_value_get_double (&dest);
-      dbus_message_iter_append_basic (iter, DBUS_TYPE_DOUBLE, &dub);
-      return TRUE;
+      return droute_return_v_double (iter, dub);
     }
   else
     {
@@ -98,8 +96,7 @@ impl_get_minimumIncrement (DBusMessageIter * iter,
   if (g_value_transform (&src, &dest))
     {
       dub = g_value_get_double (&dest);
-      dbus_message_iter_append_basic (iter, DBUS_TYPE_DOUBLE, &dub);
-      return TRUE;
+      return droute_return_v_double (iter, dub);
     }
   else
     {
@@ -124,8 +121,7 @@ impl_get_currentValue (DBusMessageIter * iter,
   if (g_value_transform (&src, &dest))
     {
       dub = g_value_get_double (&dest);
-      dbus_message_iter_append_basic (iter, DBUS_TYPE_DOUBLE, &dub);
-      return TRUE;
+      return droute_return_v_double (iter, dub);
     }
   else
     {
@@ -141,10 +137,17 @@ impl_set_currentValue (DBusMessageIter * iter,
   GValue src = {0};
   GValue dest = {0};
   gdouble dub;
+  DBusMessageIter iter_variant;
 
   g_return_val_if_fail (ATK_IS_VALUE (user_data), FALSE);
 
-  dbus_message_iter_get_basic (iter, &dub);
+  dbus_message_iter_recurse (iter, &iter_variant);
+  if (dbus_message_iter_get_arg_type (&iter_variant) != DBUS_TYPE_DOUBLE)
+  {
+    G_WARNING ("TODO: Support setting value from a non-double");
+    return FALSE;
+  }
+  dbus_message_iter_get_basic (&iter_variant, &dub);
   g_value_init (&src, G_TYPE_DOUBLE);
   g_value_set_double (&src, dub);
 
index 5b749ae..23365ef 100644 (file)
@@ -323,7 +323,11 @@ impl_prop_GetSet (DBusMessage *message,
 
         reply = dbus_message_new_method_return (message);
         dbus_message_iter_init_append (reply, &iter);
-        (prop_funcs->get) (&iter, datum);
+        if (!(prop_funcs->get) (&iter, datum))
+         {
+           dbus_message_unref (reply);
+            reply = dbus_message_new_error (message, DBUS_ERROR_FAILED, "Get failed");
+         }
       }
     else if (!get && prop_funcs->set)
       {
@@ -332,7 +336,7 @@ impl_prop_GetSet (DBusMessage *message,
 
         _DROUTE_DEBUG ("DRoute (handle prop Get): %s|%s on %s\n", pair.one, pair.two, pathstr);
 
-        dbus_message_iter_init_append (message, &iter);
+        dbus_message_iter_init (message, &iter);
         /* Skip the interface and property name */
         dbus_message_iter_next(&iter);
         dbus_message_iter_next(&iter);
index af4567b..4c06215 100644 (file)
@@ -1895,7 +1895,7 @@ impl_register_keystroke_listener (DBusConnection *bus,
  *     method implementation
  */
 static DBusMessage *
-impl_register_device_listener (DBusConnection *bus,
+impl_register_device_event_listener (DBusConnection *bus,
                                  DBusMessage *message,
                                  void *user_data)
 {
@@ -2084,7 +2084,7 @@ impl_deregister_keystroke_listener (DBusConnection *bus,
  *     method implementation
  */
 static DBusMessage *
-impl_deregister_device_listener (DBusConnection *bus,
+impl_deregister_device_event_listener (DBusConnection *bus,
                                  DBusMessage *message,
                                  void *user_data)
 {
@@ -2747,9 +2747,9 @@ static void wait_for_release_event (XEvent          *event,
 static DRouteMethod dev_methods[] =
 {
   { impl_register_keystroke_listener, "registerKeystrokeListener" },
-  { impl_register_device_listener, "registerDeviceListener" },
+  { impl_register_device_event_listener, "registerDeviceEventListener" },
   { impl_deregister_keystroke_listener, "deregisterKeystrokeListener" },
-  { impl_deregister_device_listener, "deregisterDeviceListener" },
+  { impl_deregister_device_event_listener, "deregisterDeviceEventListener" },
   { impl_generate_keyboard_event, "generateKeyboardEvent" },
   { impl_generate_mouse_event, "generateMouseEvent" },
   { impl_notify_listeners_sync, "notifyListenersSync" },
index ae4696e..1324d5b 100644 (file)
@@ -55,7 +55,7 @@ extern int _dbg;
 #define SPI_DBUS_INTERFACE_VALUE "org.freedesktop.atspi.Value"
 #define SPI_DBUS_NAME_REGISTRY "org.freedesktop.atspi.Registry"
 #define SPI_DBUS_PATH_DESKTOP "/org/freedesktop/atspi/registry/desktop"
-#define SPI_DBUS_PATH_NULL "/"
+#define SPI_DBUS_PATH_NULL "/org/freedesktop/accessible/null"
 #define SPI_DBUS_PATH_REGISTRY "/org/freedesktop/atspi/registry"
 
 DBusMessage *spi_dbus_general_error(DBusMessage *message);