diff options
author | Melanie Thielker | 2010-05-31 19:00:02 +0200 |
---|---|---|
committer | Melanie | 2010-05-31 17:55:56 +0100 |
commit | e515467c5e9a03de8d0df8e24d1ca70636f6e099 (patch) | |
tree | 25ef47db6265bbcbb9d5578a1577c125f1ce7340 /OpenSim | |
parent | Fix a nullref in EventManager caused by RegionReady not setting the scene (diff) | |
download | opensim-SC-e515467c5e9a03de8d0df8e24d1ca70636f6e099.zip opensim-SC-e515467c5e9a03de8d0df8e24d1ca70636f6e099.tar.gz opensim-SC-e515467c5e9a03de8d0df8e24d1ca70636f6e099.tar.bz2 opensim-SC-e515467c5e9a03de8d0df8e24d1ca70636f6e099.tar.xz |
Fix create selection getting overwritten by multiple updates for the same prim.
Diffstat (limited to '')
5 files changed, 13 insertions, 6 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 0945bce..a516a54 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -4558,11 +4558,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4558 | 4558 | ||
4559 | if (recipientID == data.OwnerID) | 4559 | if (recipientID == data.OwnerID) |
4560 | { | 4560 | { |
4561 | if ((data.Flags & PrimFlags.CreateSelected) != 0) | 4561 | if (data.CreateSelected) |
4562 | { | 4562 | { |
4563 | // Only send this flag once, then unset it | 4563 | // Only send this flag once, then unset it |
4564 | flags |= PrimFlags.CreateSelected; | 4564 | flags |= PrimFlags.CreateSelected; |
4565 | data.Flags &= ~PrimFlags.CreateSelected; | 4565 | data.CreateSelected = false; |
4566 | } | 4566 | } |
4567 | } | 4567 | } |
4568 | 4568 | ||
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index e923a92..a02f614 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -1500,7 +1500,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1500 | 1500 | ||
1501 | // We need to explicitly resend the newly link prim's object properties since no other actions | 1501 | // We need to explicitly resend the newly link prim's object properties since no other actions |
1502 | // occur on link to invoke this elsewhere (such as object selection) | 1502 | // occur on link to invoke this elsewhere (such as object selection) |
1503 | parentGroup.RootPart.AddFlag(PrimFlags.CreateSelected); | 1503 | parentGroup.RootPart.CreateSelected = true; |
1504 | parentGroup.TriggerScriptChangedEvent(Changed.LINK); | 1504 | parentGroup.TriggerScriptChangedEvent(Changed.LINK); |
1505 | parentGroup.HasGroupChanged = true; | 1505 | parentGroup.HasGroupChanged = true; |
1506 | parentGroup.ScheduleGroupForFullUpdate(); | 1506 | parentGroup.ScheduleGroupForFullUpdate(); |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 4453beb..ab7e3e9 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -2254,7 +2254,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2254 | linkPart.LinkNum = 2; | 2254 | linkPart.LinkNum = 2; |
2255 | 2255 | ||
2256 | linkPart.SetParent(this); | 2256 | linkPart.SetParent(this); |
2257 | linkPart.AddFlag(PrimFlags.CreateSelected); | 2257 | linkPart.CreateSelected = true; |
2258 | 2258 | ||
2259 | //if (linkPart.PhysActor != null) | 2259 | //if (linkPart.PhysActor != null) |
2260 | //{ | 2260 | //{ |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index b36b9bf..ce1972f 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -387,7 +387,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
387 | // the prim into an agent inventory (Linden client reports that the "Object not found for drop" in its log | 387 | // the prim into an agent inventory (Linden client reports that the "Object not found for drop" in its log |
388 | 388 | ||
389 | _flags = 0; | 389 | _flags = 0; |
390 | _flags |= PrimFlags.CreateSelected; | ||
391 | 390 | ||
392 | TrimPermissions(); | 391 | TrimPermissions(); |
393 | //m_undo = new UndoStack<UndoState>(ParentGroup.GetSceneMaxUndo()); | 392 | //m_undo = new UndoStack<UndoState>(ParentGroup.GetSceneMaxUndo()); |
@@ -417,6 +416,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
417 | private PrimFlags _flags = 0; | 416 | private PrimFlags _flags = 0; |
418 | private DateTime m_expires; | 417 | private DateTime m_expires; |
419 | private DateTime m_rezzed; | 418 | private DateTime m_rezzed; |
419 | private bool m_createSelected = true; | ||
420 | 420 | ||
421 | public UUID CreatorID | 421 | public UUID CreatorID |
422 | { | 422 | { |
@@ -967,6 +967,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
967 | set { m_updateFlag = value; } | 967 | set { m_updateFlag = value; } |
968 | } | 968 | } |
969 | 969 | ||
970 | [XmlIgnore] | ||
971 | public bool CreateSelected | ||
972 | { | ||
973 | get { return m_createSelected; } | ||
974 | set { m_createSelected = value; } | ||
975 | } | ||
976 | |||
970 | #endregion | 977 | #endregion |
971 | 978 | ||
972 | //--------------- | 979 | //--------------- |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 7a9a92d..6e9a823 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -3506,7 +3506,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3506 | } | 3506 | } |
3507 | 3507 | ||
3508 | parentPrim.TriggerScriptChangedEvent(Changed.LINK); | 3508 | parentPrim.TriggerScriptChangedEvent(Changed.LINK); |
3509 | parentPrim.RootPart.AddFlag(PrimFlags.CreateSelected); | 3509 | parentPrim.RootPart.CreateSelected = true; |
3510 | parentPrim.HasGroupChanged = true; | 3510 | parentPrim.HasGroupChanged = true; |
3511 | parentPrim.ScheduleGroupForFullUpdate(); | 3511 | parentPrim.ScheduleGroupForFullUpdate(); |
3512 | 3512 | ||