2009-06-08 Mark Doffman <mark.doffman@codethink.co.uk>
authorMark Doffman <mdoff@silver-wind.(none)>
Mon, 8 Jun 2009 10:18:35 +0000 (11:18 +0100)
committerMark Doffman <mdoff@silver-wind.(none)>
Mon, 8 Jun 2009 10:18:35 +0000 (11:18 +0100)
        Add an option to refresh the cache of data on
        any given accessible object. The refresh currently
        affects all accessible objects in any particular application.

pyatspi/accessible.py
pyatspi/accessiblecache.py
pyatspi/registry.py

index 8055e00..233d3eb 100644 (file)
@@ -273,8 +273,9 @@ class Accessible(BaseProxy):
         """
     parent = property(fget=get_parent, doc=_parentDoc)
 
-    def flushCache(self):
+    def refresh(self):
             self._relation_set = None
+            self._cache.application_cache[self._app_name].refresh()
 
 # Register the accessible class with the factory.
 accessible_factory.register_accessible_class(ATSPI_ACCESSIBLE, Accessible)
index edfde8a..7d199e9 100644 (file)
@@ -90,20 +90,17 @@ class AccessibleCache(object):
                 self._bus_name = bus_name
 
                 obj = connection.get_object(bus_name, self._PATH, introspect=False)
-                itf = _dbus.Interface(obj, self._INTERFACE)
+                self._tree_itf = _dbus.Interface(obj, self._INTERFACE)
 
                 self._objects = {}
 
-                get_method = itf.get_dbus_method(self._GET_METHOD)
+                get_method = self._tree_itf.get_dbus_method(self._GET_METHOD)
                 self._update_objects(get_method())
 
-                self._updateMatch = itf.connect_to_signal(self._UPDATE_SIGNAL, self._update_single)
-                self._removeMatch = itf.connect_to_signal(self._REMOVE_SIGNAL, self._remove_object)
+                self._updateMatch = self._tree_itf.connect_to_signal(self._UPDATE_SIGNAL, self._update_single)
+                self._removeMatch = self._tree_itf.connect_to_signal(self._REMOVE_SIGNAL, self._remove_object)
 
-                obj = connection.get_object(self._bus_name, self._PATH, introspect=False)
-                itf = _dbus.Interface(obj, self._INTERFACE)
-
-                self._root = itf.getRoot()
+                self._root = self._tree_itf.getRoot()
 
         def __getitem__(self, key):
                 return self._objects[key]
@@ -190,6 +187,10 @@ class AccessibleCache(object):
         def _get_root(self):
                 return self._root
 
+        def _refresh(self):
+                get_method = self._tree_itf.get_dbus_method(self._GET_METHOD)
+                self._update_objects(get_method())
+
         root = property(fget=_get_root)
 
 #END---------------------------------------------------------------------------
index 66fcaf7..9873fd3 100644 (file)
@@ -479,4 +479,4 @@ class _Registry(object):
                 @param name: Name of the event to generate
                 @type name: string
                 """
-                self.dev.generateMouseEvent(x, y, name)
+                self.dev.generateMouseEvent(dbus.Int32(x), dbus.Int32(y), name)