aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-07-19 03:27:16 +0100
committerJustin Clark-Casey (justincc)2011-07-19 03:27:16 +0100
commitc94dc95844c5a43483a30807353aaebf658b015e (patch)
tree1edf238023cd491e546141c5e04f7b0768f6ecdb /OpenSim/Region
parentFix undo for resizing linksets (diff)
downloadopensim-SC-c94dc95844c5a43483a30807353aaebf658b015e.zip
opensim-SC-c94dc95844c5a43483a30807353aaebf658b015e.tar.gz
opensim-SC-c94dc95844c5a43483a30807353aaebf658b015e.tar.bz2
opensim-SC-c94dc95844c5a43483a30807353aaebf658b015e.tar.xz
fix undo when resizing of non-root individual prims in a linkset
undo resize, rotation and position still needs fixing when only editing root prim of a linkset
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs5
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs8
3 files changed, 11 insertions, 4 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 4c0b53c..a34ad62 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -11424,6 +11424,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11424 handlerUpdatePrimScale = OnUpdatePrimScale; 11424 handlerUpdatePrimScale = OnUpdatePrimScale;
11425 if (handlerUpdatePrimScale != null) 11425 if (handlerUpdatePrimScale != null)
11426 { 11426 {
11427 part.StoreUndoState(false);
11428 part.IgnoreUndoUpdate = true;
11429
11427 // m_log.Debug("new scale is " + scale.X + " , " + scale.Y + " , " + scale.Z); 11430 // m_log.Debug("new scale is " + scale.X + " , " + scale.Y + " , " + scale.Z);
11428 handlerUpdatePrimScale(localId, scale6, this); 11431 handlerUpdatePrimScale(localId, scale6, this);
11429 handlerUpdatePrimSinglePosition = OnUpdatePrimSinglePosition; 11432 handlerUpdatePrimSinglePosition = OnUpdatePrimSinglePosition;
@@ -11431,6 +11434,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11431 { 11434 {
11432 handlerUpdatePrimSinglePosition(localId, pos6, this); 11435 handlerUpdatePrimSinglePosition(localId, pos6, this);
11433 } 11436 }
11437
11438 part.IgnoreUndoUpdate = false;
11434 } 11439 }
11435 break; 11440 break;
11436 11441
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 0a0bde8..8e174f5 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -1291,7 +1291,7 @@ namespace OpenSim.Region.Framework.Scenes
1291 { 1291 {
1292 if (m_parentScene.Permissions.CanMoveObject(group.UUID, remoteClient.AgentId)) 1292 if (m_parentScene.Permissions.CanMoveObject(group.UUID, remoteClient.AgentId))
1293 { 1293 {
1294 group.UpdateSingleRotation(rot,pos, localID); 1294 group.UpdateSingleRotation(rot, pos, localID);
1295 } 1295 }
1296 } 1296 }
1297 } 1297 }
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 3bbf76c..3adeef1 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -2815,15 +2815,17 @@ namespace OpenSim.Region.Framework.Scenes
2815 { 2815 {
2816 SceneObjectPart part = GetChildPart(localID); 2816 SceneObjectPart part = GetChildPart(localID);
2817 2817
2818 SceneObjectPart[] parts = m_parts.GetArray(); 2818// SceneObjectPart[] parts = m_parts.GetArray();
2819 for (int i = 0; i < parts.Length; i++) 2819// for (int i = 0; i < parts.Length; i++)
2820 parts[i].StoreUndoState(); 2820// parts[i].StoreUndoState();
2821 2821
2822 if (part != null) 2822 if (part != null)
2823 { 2823 {
2824// m_log.DebugFormat( 2824// m_log.DebugFormat(
2825// "[SCENE OBJECT GROUP]: Updating single position of {0} {1} to {2}", part.Name, part.LocalId, pos); 2825// "[SCENE OBJECT GROUP]: Updating single position of {0} {1} to {2}", part.Name, part.LocalId, pos);
2826 2826
2827 part.StoreUndoState(false);
2828
2827 if (part.UUID == m_rootPart.UUID) 2829 if (part.UUID == m_rootPart.UUID)
2828 { 2830 {
2829 UpdateRootPosition(pos); 2831 UpdateRootPosition(pos);