diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 0a1a226c36..75da29953e 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -2672,20 +2672,26 @@ namespace OpenSim.Region.Framework.Scenes
}
else
{
- //NonPhysicalGrabMovement(pos);
+ NonPhysicalGrabMovement(pos);
}
}
else
{
- //NonPhysicalGrabMovement(pos);
+ NonPhysicalGrabMovement(pos);
}
}
}
+ ///
+ /// Apply possition for grabbing non-physical linksets (ctrl+drag)
+ ///
+ /// New Position
public void NonPhysicalGrabMovement(Vector3 pos)
{
- AbsolutePosition = pos;
- m_rootPart.SendTerseUpdateToAllClients();
+ if((m_rootPart.Flags & PrimFlags.Scripted) == 0)
+ {
+ UpdateGroupPosition(pos);
+ }
}
///
@@ -2781,16 +2787,28 @@ namespace OpenSim.Region.Framework.Scenes
}
else
{
- //NonPhysicalSpinMovement(pos);
+ NonPhysicalSpinMovement(newOrientation);
}
}
else
{
- //NonPhysicalSpinMovement(pos);
+ NonPhysicalSpinMovement(newOrientation);
}
}
}
+ ///
+ /// Apply rotation for spinning non-physical linksets (ctrl+shift+drag)
+ ///
+ /// New Rotation
+ private void NonPhysicalSpinMovement(Quaternion newOrientation)
+ {
+ if ((m_rootPart.Flags & PrimFlags.Scripted) == 0)
+ {
+ UpdateGroupRotationR(newOrientation);
+ }
+ }
+
///
/// Set the name of a prim
///