#include "accessible.h"
#include "bridge.h"
-extern SpiAppData *this_app;
+extern SpiAppData *app_data;
static gboolean update_pending = FALSE;
/*---------------------------------------------------------------------------*/
* Marshals the given AtkObject into the provided D-Bus iterator.
*
* The object is marshalled including all its client side cache data.
- * The format of the strucuture is (ooaoassus).
+ * The format of the structure is (ooaoassusau).
* This is used in the updateTree signal and the getTree method
* of the org.freedesktop.atspi.Tree interface.
*/
DBusMessageIter *iter_array;
DBusMessageIter iter_struct, iter_sub_array;
DRouteData *data;
+ dbus_int32_t states [2];
+ int count;
const char *name, *desc;
int i;
obj = ATK_OBJECT(obj_data);
iter_array = (DBusMessageIter *) iter;
- data = &(this_app->droute);
+ data = &(app_data->droute);
dbus_message_iter_open_container (iter_array, DBUS_TYPE_STRUCT, NULL, &iter_struct);
{
path = atk_dbus_get_path_from_ref(GPOINTER_TO_INT(ref));
dbus_message_iter_append_basic (&iter_struct, DBUS_TYPE_OBJECT_PATH, &path);
- g_free(path);
parent = atk_object_get_parent(obj);
if (parent == NULL)
if (!desc)
desc = "";
dbus_message_iter_append_basic (&iter_struct, DBUS_TYPE_STRING, &desc);
+
+ g_free(path);
}
+ spi_atk_state_to_dbus_array (obj, &states);
+ dbus_message_iter_open_container (&iter_struct, DBUS_TYPE_ARRAY, "u", &iter_sub_array);
+ for (count = 0; count < 2; count++)
+ dbus_message_iter_append_basic (&iter_sub_array, DBUS_TYPE_UINT32, &states[count]);
+ dbus_message_iter_close_container (&iter_struct, &iter_sub_array);
dbus_message_iter_close_container (iter_array, &iter_struct);
}
DBusMessageIter iter_array;
DRouteData *data;
- data = &(this_app->droute);
+ data = &(app_data->droute);
message = dbus_message_new_signal ("/org/freedesktop/atspi/tree", SPI_DBUS_INTERFACE_TREE, "updateTree");
dbus_message_iter_init_append (message, &iter);
- dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY, "(ooaoassus)", &iter_array);
+ dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY, "(ooaoassusau)", &iter_array);
atk_dbus_foreach_update_list(append_accessible, &iter_array);
dbus_message_iter_close_container(&iter, &iter_array);
reply = dbus_message_new_method_return (message);
dbus_message_iter_init_append (reply, &iter);
- dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "(ooaoassus)", &iter_array);
+ dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "(ooaoassusau)", &iter_array);
atk_dbus_foreach_registered(append_accessible, &iter_array);
dbus_message_iter_close_container(&iter, &iter_array);
return reply;