summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gorse <mgorse@boston.site>2009-04-15 08:44:11 -0500
committerMark Doffman <mdoff@silver-wind.(none)>2009-04-21 17:16:02 +0100
commit5dc9ddd701fd95dcce8888f75fd2236062947424 (patch)
treec203dc6cec5c59cfad8ca2d86d724de1ab3594c0
parentc767935ed5f324a9b498b78bd19c1b354aa06575 (diff)
downloadat-spi2-core-5dc9ddd701fd95dcce8888f75fd2236062947424.tar.gz
2009-04-15 Mike Gorse <mgorse@novell.com>
* 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.
-rw-r--r--atk-adaptor/accessible-marshaller.c10
-rw-r--r--atk-adaptor/editabletext-adaptor.c2
-rw-r--r--atk-adaptor/text-adaptor.c6
-rw-r--r--atk-adaptor/value-adaptor.c21
-rw-r--r--droute/droute.c8
-rw-r--r--registryd/deviceeventcontroller.c8
-rw-r--r--spi-common/spi-dbus.h2
7 files changed, 35 insertions, 22 deletions
diff --git a/atk-adaptor/accessible-marshaller.c b/atk-adaptor/accessible-marshaller.c
index 6e9de235..30d6b33e 100644
--- a/atk-adaptor/accessible-marshaller.c
+++ b/atk-adaptor/accessible-marshaller.c
@@ -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;
}
diff --git a/atk-adaptor/editabletext-adaptor.c b/atk-adaptor/editabletext-adaptor.c
index ce0f8e3e..4f2f4846 100644
--- a/atk-adaptor/editabletext-adaptor.c
+++ b/atk-adaptor/editabletext-adaptor.c
@@ -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 *
diff --git a/atk-adaptor/text-adaptor.c b/atk-adaptor/text-adaptor.c
index ebbea28c..ae3eed62 100644
--- a/atk-adaptor/text-adaptor.c
+++ b/atk-adaptor/text-adaptor.c
@@ -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,
diff --git a/atk-adaptor/value-adaptor.c b/atk-adaptor/value-adaptor.c
index 4c0c8d82..68631de9 100644
--- a/atk-adaptor/value-adaptor.c
+++ b/atk-adaptor/value-adaptor.c
@@ -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);
diff --git a/droute/droute.c b/droute/droute.c
index 5b749ae1..23365efe 100644
--- a/droute/droute.c
+++ b/droute/droute.c
@@ -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);
diff --git a/registryd/deviceeventcontroller.c b/registryd/deviceeventcontroller.c
index af4567b7..4c062154 100644
--- a/registryd/deviceeventcontroller.c
+++ b/registryd/deviceeventcontroller.c
@@ -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" },
diff --git a/spi-common/spi-dbus.h b/spi-common/spi-dbus.h
index ae4696e6..1324d5b6 100644
--- a/spi-common/spi-dbus.h
+++ b/spi-common/spi-dbus.h
@@ -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);