diff options
author | Justin Clark-Casey (justincc) | 2011-07-19 03:27:16 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-07-19 03:27:16 +0100 |
commit | c94dc95844c5a43483a30807353aaebf658b015e (patch) | |
tree | 1edf238023cd491e546141c5e04f7b0768f6ecdb /OpenSim/Region | |
parent | Fix undo for resizing linksets (diff) | |
download | opensim-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.cs | 5 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 8 |
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); |