guint i;
gboolean recurse;
- if (!filter (accessible))
+ if (filter (accessible))
return;
stack = g_queue_new ();
{
tmp = atk_object_ref_accessible_child (current, i);
/* If filter function */
- if (filter (tmp))
+ if (!filter (tmp))
{
recurse = TRUE;
}
traverse_atk_tree (accessible,
®istered,
- (ActionFunc) register_accessible,
+ (ActionFunc) register_action,
(FilterFunc) register_filter);
g_list_foreach (registered, register_foreach, NULL);
if (!ref)
return NULL;
else
- return atk_dbus_ref_to_path (ref);
+ return ref_to_path (ref);
}
/*---------------------------------------------------------------------------*/
get_method = itf.get_dbus_method(self._GET_METHOD)
self._update_objects(get_method())
- self._updateMatch = itf.connect_to_signal(self._UPDATE_SIGNAL, self._update_objects)
+ self._updateMatch = itf.connect_to_signal(self._UPDATE_SIGNAL, self._update_single)
self._removeMatch = itf.connect_to_signal(self._REMOVE_SIGNAL, self._remove_object)
obj = connection.get_object(self._bus_name, self._PATH, introspect=False)
("remove", 0, 0, ""))
self._registry._notifyChildrenChange(event)
+ # TODO This should be the other way around. Single is more common than many.
+ def _update_single(self, object):
+ self._update_objects ([object])
+
def _update_objects(self, objects):
cache_update_objects = []
for data in objects: