瀏覽代碼

Change active node upon drag

Josh Engebretson 10 年之前
父節點
當前提交
63a969b3e0
共有 1 個文件被更改,包括 12 次插入0 次删除
  1. 12 0
      Source/AtomicEditorWork/Editors/SceneEditor3D/SceneView3D.cpp

+ 12 - 0
Source/AtomicEditorWork/Editors/SceneEditor3D/SceneView3D.cpp

@@ -365,7 +365,13 @@ void SceneView3D::HandleUpdate(StringHash eventType, VariantMap& eventData)
             {
                 dragNode_->LoadXML(xml->GetRoot());
                 UpdateDragNode(0, 0);
+
+                VariantMap neventData;
+                neventData[EditorActiveNodeChange::P_NODE] = dragNode_;
+                SendEvent(E_EDITORACTIVENODECHANGE, neventData);
+
             }
+
             preloadResourceScene_ = 0;
             dragAssetGUID_ = "";
 
@@ -470,7 +476,13 @@ void SceneView3D::HandleDragExitWidget(StringHash eventType, VariantMap& eventDa
 
     if (dragNode_.NotNull())
     {
+        // BUG! https://github.com/urho3d/Urho3D/issues/748
+        dragNode_->RemoveAllComponents();
+
         scene_->RemoveChild(dragNode_);
+        VariantMap neventData;
+        neventData[EditorActiveNodeChange::P_NODE] = (RefCounted*) 0;
+        SendEvent(E_EDITORACTIVENODECHANGE, neventData);
     }
 
     dragAssetGUID_ = 0;