diff --git a/direct/src/showbase/EventManager.py b/direct/src/showbase/EventManager.py index a74a6d1c10..e90a6953da 100644 --- a/direct/src/showbase/EventManager.py +++ b/direct/src/showbase/EventManager.py @@ -8,7 +8,7 @@ class EventManager: notify = None - def __init__(self): + def __init__(self, eventQueue = None): """ Create a C++ event queue and handler """ @@ -16,15 +16,24 @@ class EventManager: if (EventManager.notify == None): EventManager.notify = directNotify.newCategory("EventManager") - self.eventQueue = EventQueue.getGlobalEventQueue() + if eventQueue != None: + self.eventQueue = eventQueue + else: + self.eventQueue = EventQueue.getGlobalEventQueue() self.eventHandler = EventHandler(self.eventQueue) - def eventLoop(self, task): + def doEvents(self): """ Process all the events on the C++ event queue """ while (not self.eventQueue.isQueueEmpty()): self.processEvent(self.eventQueue.dequeueEvent()) + + def eventLoopTask(self, task): + """ + Process all the events on the C++ event queue + """ + self.doEvents() return Task.cont def parseEventParameter(self, eventParameter): @@ -73,7 +82,7 @@ class EventManager: def restart(self): - taskMgr.add(self.eventLoop, 'eventManager') + taskMgr.add(self.eventLoopTask, 'eventManager') def shutdown(self): taskMgr.remove('eventManager')