Add atspi_accessible_clear_cache
authorMike Gorse <mgorse@novell.com>
Tue, 24 May 2011 21:56:42 +0000 (16:56 -0500)
committerMike Gorse <mgorse@novell.com>
Tue, 24 May 2011 21:56:42 +0000 (16:56 -0500)
atspi/atspi-accessible.c
atspi/atspi-accessible.h

index 6784607..2a42d41 100644 (file)
@@ -1395,6 +1395,26 @@ atspi_accessible_set_cache_mask (AtspiAccessible *accessible, AtspiCache mask)
   accessible->parent.app->cache = mask;
 }
 
+/**
+ * atspi_accessible_clear_cache:
+ * @accessible: The #AtspiAccessible whose cache to clear.
+ *
+ * Clears the cached information for the given accessible and all of its
+ * descendants.
+ */
+void
+atspi_accessible_clear_cache (AtspiAccessible *accessible)
+{
+  GList *l;
+
+  if (accessible)
+  {
+    accessible->cached_properties = ATSPI_CACHE_NONE;
+    for (l = accessible->children; l; l = l->next)
+      atspi_accessible_clear_cache (l->data);
+  }
+}
+
 static AtspiCache
 _atspi_accessible_get_cache_mask (AtspiAccessible *accessible)
 {
index 60972aa..ffa7f40 100644 (file)
@@ -131,6 +131,8 @@ GArray * atspi_accessible_get_interfaces (AtspiAccessible *obj);
 
 void atspi_accessible_set_cache_mask (AtspiAccessible *accessible, AtspiCache mask);
 
+void atspi_accessible_clear_cache (AtspiAccessible *accessible);
+
 /* private */
 void _atspi_accessible_add_cache (AtspiAccessible *accessible, AtspiCache flag);
 gboolean _atspi_accessible_test_cache (AtspiAccessible *accessible, AtspiCache flag);