mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
Make enableLight persistent through subsequent disable/enables
This commit is contained in:
parent
1b729fb229
commit
d4dd191c05
@ -27,6 +27,7 @@ class DirectSession(PandaObject):
|
|||||||
self.group = render.attachNewNode('DIRECT')
|
self.group = render.attachNewNode('DIRECT')
|
||||||
self.font = TextNode.getDefaultFont()
|
self.font = TextNode.getDefaultFont()
|
||||||
self.fEnabled = 0
|
self.fEnabled = 0
|
||||||
|
self.fEnabledLight = 0
|
||||||
self.drList = DisplayRegionList()
|
self.drList = DisplayRegionList()
|
||||||
self.iRayList = map(lambda x: x.iRay, self.drList)
|
self.iRayList = map(lambda x: x.iRay, self.drList)
|
||||||
self.dr = self.drList[0]
|
self.dr = self.drList[0]
|
||||||
@ -194,6 +195,7 @@ class DirectSession(PandaObject):
|
|||||||
self.disable()
|
self.disable()
|
||||||
# Start all display region context tasks
|
# Start all display region context tasks
|
||||||
self.drList.spawnContextTask()
|
self.drList.spawnContextTask()
|
||||||
|
if not self.fEnabledLight:
|
||||||
# Turn on mouse Flying
|
# Turn on mouse Flying
|
||||||
self.cameraControl.enableMouseFly()
|
self.cameraControl.enableMouseFly()
|
||||||
# Turn on object manipulation
|
# Turn on object manipulation
|
||||||
@ -201,38 +203,26 @@ class DirectSession(PandaObject):
|
|||||||
# Make sure list of selected items is reset
|
# Make sure list of selected items is reset
|
||||||
self.selected.reset()
|
self.selected.reset()
|
||||||
# Accept appropriate hooks
|
# Accept appropriate hooks
|
||||||
|
if not self.fEnabledLight:
|
||||||
self.enableKeyEvents()
|
self.enableKeyEvents()
|
||||||
self.enableModifierEvents()
|
|
||||||
self.enableMouseEvents()
|
self.enableMouseEvents()
|
||||||
self.enableActionEvents()
|
self.enableActionEvents()
|
||||||
|
self.enableModifierEvents()
|
||||||
# Set flag
|
# Set flag
|
||||||
self.fEnabled = 1
|
self.fEnabled = 1
|
||||||
|
|
||||||
def enableLight(self):
|
def enableLight(self):
|
||||||
if self.fEnabled:
|
self.fEnabledLight = 1
|
||||||
return
|
self.enable()
|
||||||
# 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
|
|
||||||
|
|
||||||
def disable(self):
|
def disable(self):
|
||||||
# Shut down all display region context tasks
|
# Shut down all display region context tasks
|
||||||
self.drList.removeContextTask()
|
self.drList.removeContextTask()
|
||||||
|
if not self.fEnabledLight:
|
||||||
# Turn off camera fly
|
# Turn off camera fly
|
||||||
self.cameraControl.disableMouseFly()
|
self.cameraControl.disableMouseFly()
|
||||||
# Turn off object manipulation
|
# Turn off object manipulation
|
||||||
|
self.deselectAll()
|
||||||
self.manipulationControl.disableManipulation()
|
self.manipulationControl.disableManipulation()
|
||||||
self.disableKeyEvents()
|
self.disableKeyEvents()
|
||||||
self.disableModifierEvents()
|
self.disableModifierEvents()
|
||||||
|
@ -88,7 +88,7 @@ class DirectSessionPanel(AppShell):
|
|||||||
self.menuBar.addmenu('DIRECT', 'Direct Session Panel Operations')
|
self.menuBar.addmenu('DIRECT', 'Direct Session Panel Operations')
|
||||||
|
|
||||||
self.directEnabled = BooleanVar()
|
self.directEnabled = BooleanVar()
|
||||||
self.directEnabled.set(direct.isEnabled())
|
self.directEnabled.set(1)
|
||||||
self.menuBar.addmenuitem('DIRECT', 'checkbutton',
|
self.menuBar.addmenuitem('DIRECT', 'checkbutton',
|
||||||
'DIRECT Enabled',
|
'DIRECT Enabled',
|
||||||
label = 'Enable',
|
label = 'Enable',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user