diff options
author | Melanie Thielker | 2010-05-31 19:00:02 +0200 |
---|---|---|
committer | Melanie Thielker | 2010-05-31 19:00:02 +0200 |
commit | d4b4cbf5a5fead727b5e2e48f69d2016eb942cff (patch) | |
tree | 4382d4fd3d53cf6bae3daf971793f19e8e1aa967 /OpenSim | |
parent | Fix a nullref in EventManager caused by RegionReady not setting the scene (diff) | |
download | opensim-SC_OLD-d4b4cbf5a5fead727b5e2e48f69d2016eb942cff.zip opensim-SC_OLD-d4b4cbf5a5fead727b5e2e48f69d2016eb942cff.tar.gz opensim-SC_OLD-d4b4cbf5a5fead727b5e2e48f69d2016eb942cff.tar.bz2 opensim-SC_OLD-d4b4cbf5a5fead727b5e2e48f69d2016eb942cff.tar.xz |
Fix create selection getting overwritten by multiple updates for the same prim.
Diffstat (limited to 'OpenSim')
5 files changed, 13 insertions, 6 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 51cc763..fe8475a 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -4561,11 +4561,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4561 | 4561 | ||
4562 | if (recipientID == data.OwnerID) | 4562 | if (recipientID == data.OwnerID) |
4563 | { | 4563 | { |
4564 | if ((data.Flags & PrimFlags.CreateSelected) != 0) | 4564 | if (data.CreateSelected) |
4565 | { | 4565 | { |
4566 | // Only send this flag once, then unset it | 4566 | // Only send this flag once, then unset it |
4567 | flags |= PrimFlags.CreateSelected; | 4567 | flags |= PrimFlags.CreateSelected; |
4568 | data.Flags &= ~PrimFlags.CreateSelected; | 4568 | data.CreateSelected = false; |
4569 | } | 4569 | } |
4570 | } | 4570 | } |
4571 | 4571 | ||
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 445c2c8..5fbc658 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -1542,7 +1542,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1542 | 1542 | ||
1543 | // We need to explicitly resend the newly link prim's object properties since no other actions | 1543 | // We need to explicitly resend the newly link prim's object properties since no other actions |
1544 | // occur on link to invoke this elsewhere (such as object selection) | 1544 | // occur on link to invoke this elsewhere (such as object selection) |
1545 | parentGroup.RootPart.AddFlag(PrimFlags.CreateSelected); | 1545 | parentGroup.RootPart.CreateSelected = true; |
1546 | parentGroup.TriggerScriptChangedEvent(Changed.LINK); | 1546 | parentGroup.TriggerScriptChangedEvent(Changed.LINK); |
1547 | } | 1547 | } |
1548 | finally | 1548 | finally |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 9ebb168..509ec01 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -2486,7 +2486,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2486 | linkPart.LinkNum = 2; | 2486 | linkPart.LinkNum = 2; |
2487 | 2487 | ||
2488 | linkPart.SetParent(this); | 2488 | linkPart.SetParent(this); |
2489 | linkPart.AddFlag(PrimFlags.CreateSelected); | 2489 | linkPart.CreateSelected = true; |
2490 | 2490 | ||
2491 | //if (linkPart.PhysActor != null) | 2491 | //if (linkPart.PhysActor != null) |
2492 | //{ | 2492 | //{ |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 6e73b65..2f4191d 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -388,7 +388,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
388 | // the prim into an agent inventory (Linden client reports that the "Object not found for drop" in its log | 388 | // the prim into an agent inventory (Linden client reports that the "Object not found for drop" in its log |
389 | 389 | ||
390 | _flags = 0; | 390 | _flags = 0; |
391 | _flags |= PrimFlags.CreateSelected; | ||
392 | 391 | ||
393 | TrimPermissions(); | 392 | TrimPermissions(); |
394 | //m_undo = new UndoStack<UndoState>(ParentGroup.GetSceneMaxUndo()); | 393 | //m_undo = new UndoStack<UndoState>(ParentGroup.GetSceneMaxUndo()); |
@@ -418,6 +417,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
418 | private PrimFlags _flags = 0; | 417 | private PrimFlags _flags = 0; |
419 | private DateTime m_expires; | 418 | private DateTime m_expires; |
420 | private DateTime m_rezzed; | 419 | private DateTime m_rezzed; |
420 | private bool m_createSelected = true; | ||
421 | 421 | ||
422 | public UUID CreatorID | 422 | public UUID CreatorID |
423 | { | 423 | { |
@@ -978,6 +978,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
978 | set { m_updateFlag = value; } | 978 | set { m_updateFlag = value; } |
979 | } | 979 | } |
980 | 980 | ||
981 | [XmlIgnore] | ||
982 | public bool CreateSelected | ||
983 | { | ||
984 | get { return m_createSelected; } | ||
985 | set { m_createSelected = value; } | ||
986 | } | ||
987 | |||
981 | #endregion | 988 | #endregion |
982 | 989 | ||
983 | //--------------- | 990 | //--------------- |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index bb02fa3..228ab6d 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -3742,7 +3742,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3742 | } | 3742 | } |
3743 | 3743 | ||
3744 | parentPrim.TriggerScriptChangedEvent(Changed.LINK); | 3744 | parentPrim.TriggerScriptChangedEvent(Changed.LINK); |
3745 | parentPrim.RootPart.AddFlag(PrimFlags.CreateSelected); | 3745 | parentPrim.RootPart.CreateSelected = true; |
3746 | parentPrim.HasGroupChanged = true; | 3746 | parentPrim.HasGroupChanged = true; |
3747 | parentPrim.ScheduleGroupForFullUpdate(); | 3747 | parentPrim.ScheduleGroupForFullUpdate(); |
3748 | 3748 | ||