fixed ignore()

This commit is contained in:
Dave Schuyler 2003-11-21 02:11:12 +00:00
parent 7adb655231
commit 83e2b70751

View File

@ -19,6 +19,7 @@ class InputState(DirectObject.DirectObject):
def __init__(self): def __init__(self):
self.state = {} self.state = {}
assert(self.debugPrint("InputState()")) assert(self.debugPrint("InputState()"))
self.watching = {}
def delete(self): def delete(self):
self.ignoreAll() self.ignoreAll()
@ -41,15 +42,18 @@ class InputState(DirectObject.DirectObject):
self.accept(eventOn, self.set, [name, 1]) self.accept(eventOn, self.set, [name, 1])
self.accept(eventOff, self.set, [name, 0]) self.accept(eventOff, self.set, [name, 0])
self.state[name] = default self.state[name] = default
self.watching[name] = (eventOn, eventOff)
def ignore(self, name): def ignore(self, name):
""" """
The opposite of watch(name, ...) The opposite of watch(name, ...)
See Also: watch() See Also: watch()
""" """
self.ignore(eventOn) eventOn, eventOff = self.watching[name]
self.ignore(eventOff) DirectObject.DirectObject.ignore(self, eventOn)
del state[name] DirectObject.DirectObject.ignore(self, eventOff)
del self.watching[name]
del self.state[name]
def set(self, name, isSet): def set(self, name, isSet):
assert(self.debugPrint("set(name=%s, isSet=%s)"%(name, isSet))) assert(self.debugPrint("set(name=%s, isSet=%s)"%(name, isSet)))