diff --git a/direct/src/leveleditor/LevelEditorBase.py b/direct/src/leveleditor/LevelEditorBase.py index 0d4351e871..cdd97aca2d 100755 --- a/direct/src/leveleditor/LevelEditorBase.py +++ b/direct/src/leveleditor/LevelEditorBase.py @@ -104,6 +104,7 @@ class LevelEditorBase(DirectObject): base.direct.ignore('DIRECT-delete') base.direct.ignore('DIRECT-select') base.direct.ignore('DIRECT-preDeselectAll') + base.direct.ignore('DIRECT-toggleWidgetVis') base.direct.fIgnoreDirectOnlyKeyMap = 1 # [gjeon] do not use the old way of finding current DR @@ -132,6 +133,7 @@ class LevelEditorBase(DirectObject): ('LE-OpenScene', self.ui.onOpen), ('LE-Quit', self.ui.quit), ('DIRECT-mouse3', self.handleMouse3), + ('DIRECT-toggleWidgetVis', self.toggleWidget), ]) # Add all the action events @@ -171,6 +173,13 @@ class LevelEditorBase(DirectObject): __builtins__['last'] = None base.direct.selected.last = None + def toggleWidget(self): + if self.objectMgr.currNodePath: + obj = self.objectMgr.findObjectByNodePath(self.objectMgr.currNodePath) + if obj and not obj[OG.OBJ_DEF].movable: + return + base.direct.toggleWidgetVis() + def handleMouse3(self, modifiers): if base.direct.fAlt or modifiers == 4: return diff --git a/direct/src/leveleditor/ObjectMgr.py b/direct/src/leveleditor/ObjectMgr.py index a5af553516..5e838d0648 100755 --- a/direct/src/leveleditor/ObjectMgr.py +++ b/direct/src/leveleditor/ObjectMgr.py @@ -215,6 +215,12 @@ class ObjectMgr: if fLEPane == 0: self.editor.ui.sceneGraphUI.select(obj[OG.OBJ_UID]) + if not obj[OG.OBJ_DEF].movable: + if base.direct.widget.fActive: + base.direct.widget.toggleWidget() + + + def updateObjectPropertyUI(self, obj): objDef = obj[OG.OBJ_DEF] objProp = obj[OG.OBJ_PROP]