Merge branch 'master' into bigmerge

avinationmerge
Melanie 2011-11-10 23:44:19 +00:00
commit e9055cec17
2 changed files with 15 additions and 19 deletions

View File

@ -2261,7 +2261,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
/// <summary> /// <summary>
/// Send metadata about the root prim (name, description, sale price, etc.) to a client. /// Send metadata about the root prim (name, description, sale price, permissions, etc.) to a client.
/// </summary> /// </summary>
/// <param name="client"></param> /// <param name="client"></param>
public void SendPropertiesToClient(IClientAPI client) public void SendPropertiesToClient(IClientAPI client)
@ -2886,6 +2886,11 @@ namespace OpenSim.Region.Framework.Scenes
parts[i].UpdatePermissions(AgentID, field, localID, mask, addRemTF); parts[i].UpdatePermissions(AgentID, field, localID, mask, addRemTF);
HasGroupChanged = true; HasGroupChanged = true;
// Send the group's properties to all clients once all parts are updated
IClientAPI client;
if (Scene.TryGetClient(AgentID, out client))
SendPropertiesToClient(client);
} }
#endregion #endregion

View File

@ -1391,22 +1391,6 @@ namespace OpenSim.Region.Framework.Scenes
client.SendObjectPropertiesReply(this); client.SendObjectPropertiesReply(this);
} }
/// <summary>
/// For the scene object group to which this part belongs, send that scene object's root part properties to a client.
/// </summary>
/// <param name="AgentID"></param>
private void SendRootPartPropertiesToClient(UUID AgentID)
{
m_parentGroup.Scene.ForEachClient(delegate(IClientAPI client)
{
// Ugly reference :(
if (client.AgentId == AgentID)
{
m_parentGroup.SendPropertiesToClient(client);
}
});
}
// TODO: unused: // TODO: unused:
// private void handleTimerAccounting(uint localID, double interval) // private void handleTimerAccounting(uint localID, double interval)
// { // {
@ -4268,6 +4252,15 @@ namespace OpenSim.Region.Framework.Scenes
} }
} }
/// <summary>
/// Update permissions on the SOP. Should only be called from SOG.UpdatePermissions because the SOG
/// will handle the client notifications once all of its parts are updated.
/// </summary>
/// <param name="AgentID"></param>
/// <param name="field"></param>
/// <param name="localID"></param>
/// <param name="mask"></param>
/// <param name="addRemTF"></param>
public void UpdatePermissions(UUID AgentID, byte field, uint localID, uint mask, byte addRemTF) public void UpdatePermissions(UUID AgentID, byte field, uint localID, uint mask, byte addRemTF)
{ {
bool set = addRemTF == 1; bool set = addRemTF == 1;
@ -4316,8 +4309,6 @@ namespace OpenSim.Region.Framework.Scenes
} }
SendFullUpdateToAllClients(); SendFullUpdateToAllClients();
SendRootPartPropertiesToClient(AgentID);
} }
} }