diff --git a/direct/src/directtools/DirectSession.py b/direct/src/directtools/DirectSession.py index c1758f8f98..47ae4770de 100644 --- a/direct/src/directtools/DirectSession.py +++ b/direct/src/directtools/DirectSession.py @@ -27,6 +27,7 @@ class DirectSession(PandaObject): self.group = render.attachNewNode('DIRECT') self.font = TextNode.getDefaultFont() self.fEnabled = 0 + self.fEnabledLight = 0 self.drList = DisplayRegionList() self.iRayList = map(lambda x: x.iRay, self.drList) self.dr = self.drList[0] @@ -194,45 +195,34 @@ class DirectSession(PandaObject): self.disable() # Start all display region context tasks self.drList.spawnContextTask() - # Turn on mouse Flying - self.cameraControl.enableMouseFly() + if not self.fEnabledLight: + # Turn on mouse Flying + self.cameraControl.enableMouseFly() # Turn on object manipulation self.manipulationControl.enableManipulation() # Make sure list of selected items is reset self.selected.reset() # Accept appropriate hooks - self.enableKeyEvents() - self.enableModifierEvents() + if not self.fEnabledLight: + self.enableKeyEvents() self.enableMouseEvents() self.enableActionEvents() + self.enableModifierEvents() # Set flag self.fEnabled = 1 def enableLight(self): - if self.fEnabled: - return - # Make sure old tasks are shut down - self.disable() - # Start all display region context tasks - self.drList.spawnContextTask() - # Turn on object manipulation - self.manipulationControl.enableManipulation() - # Make sure list of selected items is reset - self.deselectAll() - self.selected.reset() - # Accept appropriate hooks - self.enableMouseEvents() - self.enableActionEvents() - self.enableModifierEvents() - # Set flag - self.fEnabled = 1 + self.fEnabledLight = 1 + self.enable() def disable(self): # Shut down all display region context tasks self.drList.removeContextTask() - # Turn off camera fly - self.cameraControl.disableMouseFly() + if not self.fEnabledLight: + # Turn off camera fly + self.cameraControl.disableMouseFly() # Turn off object manipulation + self.deselectAll() self.manipulationControl.disableManipulation() self.disableKeyEvents() self.disableModifierEvents() diff --git a/direct/src/tkpanels/DirectSessionPanel.py b/direct/src/tkpanels/DirectSessionPanel.py index ab0d3f1016..c4985e6d38 100644 --- a/direct/src/tkpanels/DirectSessionPanel.py +++ b/direct/src/tkpanels/DirectSessionPanel.py @@ -88,7 +88,7 @@ class DirectSessionPanel(AppShell): self.menuBar.addmenu('DIRECT', 'Direct Session Panel Operations') self.directEnabled = BooleanVar() - self.directEnabled.set(direct.isEnabled()) + self.directEnabled.set(1) self.menuBar.addmenuitem('DIRECT', 'checkbutton', 'DIRECT Enabled', label = 'Enable',