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
{
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
{
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
{
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
{
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);