diff options
author | Mike Gorse <mgorse@suse.com> | 2015-06-18 20:04:31 -0500 |
---|---|---|
committer | Mike Gorse <mgorse@suse.com> | 2015-08-14 18:49:46 -0500 |
commit | b2c8c4c7230742b683db3d69a608950fede76b6c (patch) | |
tree | acea76d5c73eef71648309da4ff71d16d5d88ce6 /idl | |
parent | 2a9c0f5464ccf0b24c803c6a619f83d797362bde (diff) | |
download | at-spi2-core-b2c8c4c7230742b683db3d69a608950fede76b6c.tar.gz |
Modified cache API to include index and child count rather than children
The original cache API was problematic for QT AT-SPI because it forces
enumeration of all children, preventing lazy instantiation of objects.
The API now sends the object's index in parent and child count (or -1 if
not known / children should not be cached) rather than an array of
children.
Also made cache of children a GPtrArray rather than a GList, since it
may contain holes. If an object has not yet been instantiated for a
particular child, then its value will be set to NULL, and
atspi_accessible_get_child_at_index will make a dbus call to fetch the
child, at which point it will be cached.
https://bugzilla.gnome.org/show_bug.cgi?id=650090
Diffstat (limited to 'idl')
-rw-r--r-- | idl/cache.didl | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/idl/cache.didl b/idl/cache.didl index 8cb96939..3cf9b115 100644 --- a/idl/cache.didl +++ b/idl/cache.didl @@ -4,7 +4,8 @@ interface org.freestandards.atspi.Cache { struct CacheItem { object path; Reference parent; - Reference[] children; + int index_in_parent; + int child_count; string[] interfaces; string name; Role role; |