* pyatspi/accessible.py: Fixed bug #435895, __getitem__
[platform/core/uifw/at-spi2-atk.git] / pyatspi / registry.py
index 0ff0eb0..bc36134 100644 (file)
@@ -146,7 +146,7 @@ class _DeviceObserver(_Observer, Accessibility__POA.DeviceEventListener):
     @type key_set: list of integer
     @param mask: Integer modifier mask or an iterable over multiple masks to
       unapply all at once
-    @type mask: integer or iterable
+    @type mask: integer, iterable, or None
     @param kind: Kind of events to monitor
     @type kind: integer
     '''
@@ -171,7 +171,7 @@ class _DeviceObserver(_Observer, Accessibility__POA.DeviceEventListener):
     @type key_set: list of integer
     @param mask: Integer modifier mask or an iterable over multiple masks to
       unapply all at once
-    @type mask: integer or iterable
+    @type mask: integer, iterable, or None
     @param kind: Kind of events to monitor
     @type kind: integer
     '''
@@ -180,12 +180,10 @@ class _DeviceObserver(_Observer, Accessibility__POA.DeviceEventListener):
       iter(mask)
     except TypeError:
       # unregister a single integer if not
-      dc.deregisterKeystrokeListener(self._this(), key_set, mask, kind, 
-                                     self.mode)
+      dc.deregisterKeystrokeListener(self._this(), key_set, mask, kind)
     else:
       for m in mask:
-        dc.deregisterKeystrokeListener(self._this(), key_set, m, kind, 
-                                       self.mode)
+        dc.deregisterKeystrokeListener(self._this(), key_set, m, kind)
       
   def queryInterface(self, repo_id):
     '''
@@ -453,7 +451,7 @@ class Registry(object):
       the mask are held. When the mask is an iterable over more than one 
       integer, keys in the key_set will be monitored when any of the modifier
       combinations in the set are held.
-    @type mask: integer
+    @type mask: integer, iterable, None
     @param kind: Kind of events to watch, KEY_PRESSED_EVENT or 
       KEY_RELEASED_EVENT.
     @type kind: list
@@ -476,6 +474,9 @@ class Registry(object):
       # store the observer to client mapping, and the inverse
       self.clients[ob] = client
       self.clients[client] = ob
+    if mask is None:
+      # None means all modifier combinations
+      mask = utils.allModifiers()
     # register for new keystrokes on the observer
     ob.register(self.dev, key_set, mask, kind)
 
@@ -496,7 +497,7 @@ class Registry(object):
       the mask are held. When the mask is an iterable over more than one 
       integer, keys in the key_set will be monitored when any of the modifier
       combinations in the set are held.
-    @type mask: integer
+    @type mask: integer, iterable, None
     @param kind: Kind of events to stop watching, KEY_PRESSED_EVENT or 
       KEY_RELEASED_EVENT.
     @type kind: list
@@ -504,6 +505,9 @@ class Registry(object):
     '''
     # see if we already have an observer for this client
     ob = self.clients[client]
+    if mask is None:
+      # None means all modifier combinations
+      mask = utils.allModifiers()
     # register for new keystrokes on the observer
     ob.unregister(self.dev, key_set, mask, kind)
 
@@ -731,5 +735,5 @@ class Registry(object):
     ob = self.observers[et.name]
     ob.clientUnref()
     if ob.getClientRefCount() == 0:
-      ob.unregister(self.registry, name)
+      ob.unregister(self.reg, name)
       del self.observers[et.name]