Dave Schuyler před 22 roky
rodič
revize
83e2b70751
1 změnil soubory, kde provedl 7 přidání a 3 odebrání
  1. 7 3
      direct/src/showbase/InputState.py

+ 7 - 3
direct/src/showbase/InputState.py

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