* registry.py: Fixed bug #438623, state change events missing
authorparente <parente@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Wed, 16 May 2007 13:43:57 +0000 (13:43 +0000)
committerparente <parente@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Wed, 16 May 2007 13:43:57 +0000 (13:43 +0000)
git-svn-id: http://svn.gnome.org/svn/at-spi/trunk@927 e2bd861d-eb25-0410-b326-f6ed22b6b98c

pyatspi/ChangeLog
pyatspi/registry.py

index 7cf0347..a36823d 100644 (file)
@@ -1,3 +1,7 @@
+2007-05-16  Peter Parente  <parente@cs.unc.edu>
+
+       * registry.py: Fixed bug #438623, state change events missing
+
 2007-05-10  Peter Parente  <parente@cs.unc.edu>
 
        * utils.py: Fixed bug #437528, StateSet equals
index 396c721..2e387dc 100644 (file)
@@ -612,12 +612,19 @@ class Registry(object):
     @param event: AT-SPI event
     @type event: L{event.Event}
     '''
+    et = event.type
     try:
       # try to get the client registered for this event type
-      clients = self.clients[event.type.name]
+      clients = self.clients[et.name]
     except KeyError:
-      # client may have unregistered recently, ignore event
-      return
+      try:
+        # we may not have registered for the complete subtree of events
+        # if our tree does not list all of a certain type (e.g.
+        # object:state-changed:*); try again with klass and major only
+        clients = self.clients['%s:%s' % (et.klass, et.major)]
+      except KeyError:
+        # client may have unregistered recently, ignore event
+        return
     # make the call to each client
     for client in clients:
       try: