diff options
author | Melanie Thielker | 2008-09-03 19:28:46 +0000 |
---|---|---|
committer | Melanie Thielker | 2008-09-03 19:28:46 +0000 |
commit | eee9c114cbcfdefba2b2edc94d4d174689c5d546 (patch) | |
tree | 9bfe5c6268cbbbb805f97c8013f1a641add6867e /OpenSim/Region/Environment/Scenes/Scene.cs | |
parent | Mantis #2112 (diff) | |
download | opensim-SC_OLD-eee9c114cbcfdefba2b2edc94d4d174689c5d546.zip opensim-SC_OLD-eee9c114cbcfdefba2b2edc94d4d174689c5d546.tar.gz opensim-SC_OLD-eee9c114cbcfdefba2b2edc94d4d174689c5d546.tar.bz2 opensim-SC_OLD-eee9c114cbcfdefba2b2edc94d4d174689c5d546.tar.xz |
Mantis #2111
Eliminate gretuitious KillObject packets. KillObject is sent to the
viewer for the root part only.
Also prevents the full update on deselect that makes a deleted object
reappear and stay visible until the background deleter got around to it.
We still send 2 KillObject packets for the root prim, that could be
avoided only at a cost in reliability. One packet seems an acceptable
price to pay for consistency.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 2b242fc..45062eb 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -2496,6 +2496,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
2496 | 2496 | ||
2497 | public void SendKillObject(uint localID) | 2497 | public void SendKillObject(uint localID) |
2498 | { | 2498 | { |
2499 | SceneObjectPart part = GetSceneObjectPart(localID); | ||
2500 | if (part != null) // It is a prim | ||
2501 | { | ||
2502 | if (part.ParentGroup != null && part.ParentGroup.RootPart != null) // Valid | ||
2503 | { | ||
2504 | if (part.ParentGroup.RootPart != part) // Child part | ||
2505 | return; | ||
2506 | } | ||
2507 | } | ||
2499 | Broadcast(delegate(IClientAPI client) { client.SendKillObject(m_regionHandle, localID); }); | 2508 | Broadcast(delegate(IClientAPI client) { client.SendKillObject(m_regionHandle, localID); }); |
2500 | } | 2509 | } |
2501 | 2510 | ||