From b2722e984ab99deb01d55cd4c4e9f1a7cb563709 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 19 Jul 2011 04:40:02 +0100 Subject: Fix undo of rotation of single prims in a linkset --- OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 8 +++++--- OpenSim/Region/Framework/Scenes/UndoState.cs | 12 ++++++------ 2 files changed, 11 insertions(+), 9 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index aa1f7bc..9076d73 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -2991,6 +2991,9 @@ namespace OpenSim.Region.Framework.Scenes // "[SCENE OBJECT GROUP]: Updating single position and rotation of {0} {1} to {2}", // part.Name, part.LocalId, rot); + part.StoreUndoState(); + part.IgnoreUndoUpdate = true; + if (part.UUID == m_rootPart.UUID) { UpdateRootRotation(rot); @@ -2998,12 +3001,11 @@ namespace OpenSim.Region.Framework.Scenes } else { - part.IgnoreUndoUpdate = true; part.UpdateRotation(rot); part.OffsetPosition = pos; - part.IgnoreUndoUpdate = false; - part.StoreUndoState(); } + + part.IgnoreUndoUpdate = false; } } diff --git a/OpenSim/Region/Framework/Scenes/UndoState.cs b/OpenSim/Region/Framework/Scenes/UndoState.cs index 6f6504c..68d4cb4 100644 --- a/OpenSim/Region/Framework/Scenes/UndoState.cs +++ b/OpenSim/Region/Framework/Scenes/UndoState.cs @@ -79,17 +79,17 @@ namespace OpenSim.Region.Framework.Scenes } else { -// m_log.DebugFormat( -// "[UNDO STATE]: Storing undo position {0} for child part", part.OffsetPosition); Position = part.OffsetPosition; + m_log.DebugFormat( + "[UNDO STATE]: Storing undo position {0} for child part", Position); -// m_log.DebugFormat( -// "[UNDO STATE]: Storing undo rotation {0} for child part", part.RotationOffset); Rotation = part.RotationOffset; + m_log.DebugFormat( + "[UNDO STATE]: Storing undo rotation {0} for child part", Rotation); -// m_log.DebugFormat( -// "[UNDO STATE]: Storing undo scale {0} for child part", part.Shape.Scale); Scale = part.Shape.Scale; + m_log.DebugFormat( + "[UNDO STATE]: Storing undo scale {0} for child part", Scale); } } } -- cgit v1.1