         variant = target.GetVar(NODE_ID_VAR);
         if (!variant.empty)
             targetNode = editorScene.GetNode(variant.GetUInt());
+        Array<Node@> sourceNodes = GetMultipleSourceNodes(source);
 
         if (sourceNode !is null && targetNode !is null)
         {
             itemType = ITEM_NODE;
 
+            // Ctrl pressed: reorder
+            if (input.qualifierDown[QUAL_CTRL] && sourceNodes.length == 1)
+            {
+                // Must be within the same parent
+                if (sourceNode.parent is null || sourceNode.parent !is targetNode.parent)
+                    return false;
+            }
             // No ctrl: Reparent
-            if (!input.qualifierDown[QUAL_CTRL])
+            else
             {
                 if (sourceNode.parent is targetNode)
                     return false;
                 if (targetNode.parent is sourceNode)
                     return false;
             }
-            // Ctrl pressed: reorder
-            else
-            {
-                // Must be within the same parent
-                if (sourceNode.parent is null || sourceNode.parent !is targetNode.parent)
-                    return false;
-            }
         }
 
         // Resource browser

    else if (itemType == ITEM_COMPONENT)
    {
        Component@ targetComponent = editorScene.GetComponent(target.vars[COMPONENT_ID_VAR].GetUInt());

        if (!input.qualifierDown[QUAL_CTRL])
        {
            Array<Node@> sourceNodes = GetMultipleSourceNodes(source);
            if (targetComponent !is null && sourceNodes.length > 0)
            {
                // Drag node to StaticModelGroup to make it an instance

    text.vars[COMPONENT_ID_VAR] = component.id;
    text.text = GetComponentTitle(component);
    text.color = componentTextColor;
    text.dragDropMode = DD_SOURCE_AND_TARGET;

    IconizeUIElement(text, component.typeName);
    SetIconEnabledColor(text, component.enabledEffective);
