aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs7
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs27
2 files changed, 15 insertions, 19 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index b758b8f..da10505 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -2261,7 +2261,7 @@ namespace OpenSim.Region.Framework.Scenes
2261 } 2261 }
2262 2262
2263 /// <summary> 2263 /// <summary>
2264 /// Send metadata about the root prim (name, description, sale price, etc.) to a client. 2264 /// Send metadata about the root prim (name, description, sale price, permissions, etc.) to a client.
2265 /// </summary> 2265 /// </summary>
2266 /// <param name="client"></param> 2266 /// <param name="client"></param>
2267 public void SendPropertiesToClient(IClientAPI client) 2267 public void SendPropertiesToClient(IClientAPI client)
@@ -2886,6 +2886,11 @@ namespace OpenSim.Region.Framework.Scenes
2886 parts[i].UpdatePermissions(AgentID, field, localID, mask, addRemTF); 2886 parts[i].UpdatePermissions(AgentID, field, localID, mask, addRemTF);
2887 2887
2888 HasGroupChanged = true; 2888 HasGroupChanged = true;
2889
2890 // Send the group's properties to all clients once all parts are updated
2891 IClientAPI client;
2892 if (Scene.TryGetClient(AgentID, out client))
2893 SendPropertiesToClient(client);
2889 } 2894 }
2890 2895
2891 #endregion 2896 #endregion
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index e4bee0c..0970c92 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -1391,22 +1391,6 @@ namespace OpenSim.Region.Framework.Scenes
1391 client.SendObjectPropertiesReply(this); 1391 client.SendObjectPropertiesReply(this);
1392 } 1392 }
1393 1393
1394 /// <summary>
1395 /// For the scene object group to which this part belongs, send that scene object's root part properties to a client.
1396 /// </summary>
1397 /// <param name="AgentID"></param>
1398 private void SendRootPartPropertiesToClient(UUID AgentID)
1399 {
1400 m_parentGroup.Scene.ForEachClient(delegate(IClientAPI client)
1401 {
1402 // Ugly reference :(
1403 if (client.AgentId == AgentID)
1404 {
1405 m_parentGroup.SendPropertiesToClient(client);
1406 }
1407 });
1408 }
1409
1410 // TODO: unused: 1394 // TODO: unused:
1411 // private void handleTimerAccounting(uint localID, double interval) 1395 // private void handleTimerAccounting(uint localID, double interval)
1412 // { 1396 // {
@@ -4268,6 +4252,15 @@ namespace OpenSim.Region.Framework.Scenes
4268 } 4252 }
4269 } 4253 }
4270 4254
4255 /// <summary>
4256 /// Update permissions on the SOP. Should only be called from SOG.UpdatePermissions because the SOG
4257 /// will handle the client notifications once all of its parts are updated.
4258 /// </summary>
4259 /// <param name="AgentID"></param>
4260 /// <param name="field"></param>
4261 /// <param name="localID"></param>
4262 /// <param name="mask"></param>
4263 /// <param name="addRemTF"></param>
4271 public void UpdatePermissions(UUID AgentID, byte field, uint localID, uint mask, byte addRemTF) 4264 public void UpdatePermissions(UUID AgentID, byte field, uint localID, uint mask, byte addRemTF)
4272 { 4265 {
4273 bool set = addRemTF == 1; 4266 bool set = addRemTF == 1;
@@ -4316,8 +4309,6 @@ namespace OpenSim.Region.Framework.Scenes
4316 } 4309 }
4317 4310
4318 SendFullUpdateToAllClients(); 4311 SendFullUpdateToAllClients();
4319
4320 SendRootPartPropertiesToClient(AgentID);
4321 } 4312 }
4322 } 4313 }
4323 4314