* Resolve mantis 849

* Scripts in prims within linksets can now be properly edited using the 'edit linked parts' linden ui option
0.6.0-stable
Justin Clarke Casey 2008-04-03 13:33:46 +00:00
parent fe14d65f07
commit 6ef4f1bdae
7 changed files with 21 additions and 10 deletions

View File

@ -249,7 +249,7 @@ namespace OpenSim.Framework
public delegate void StopAnim(IClientAPI remoteClient, LLUUID animID); public delegate void StopAnim(IClientAPI remoteClient, LLUUID animID);
public delegate void LinkObjects(uint parent, List<uint> children); public delegate void LinkObjects(IClientAPI remoteClient, uint parent, List<uint> children);
public delegate void DelinkObjects(List<uint> primIds); public delegate void DelinkObjects(List<uint> primIds);

View File

@ -3356,7 +3356,7 @@ namespace OpenSim.Region.ClientStack
handlerLinkObjects = OnLinkObjects; handlerLinkObjects = OnLinkObjects;
if (handlerLinkObjects != null) if (handlerLinkObjects != null)
{ {
handlerLinkObjects(parentprimid, childrenprims); handlerLinkObjects(this, parentprimid, childrenprims);
} }
break; break;
case PacketType.ObjectDelink: case PacketType.ObjectDelink:

View File

@ -1081,11 +1081,12 @@ namespace OpenSim.Region.Environment.Scenes
} }
/// <summary> /// <summary>
/// /// Initial method invoked when we receive a link objects request from the client.
/// </summary> /// </summary>
/// <param name="client"></param>
/// <param name="parentPrim"></param> /// <param name="parentPrim"></param>
/// <param name="childPrims"></param> /// <param name="childPrims"></param>
public void LinkObjects(uint parentPrim, List<uint> childPrims) public void LinkObjects(IClientAPI client, uint parentPrim, List<uint> childPrims)
{ {
List<EntityBase> EntityList = GetEntities(); List<EntityBase> EntityList = GetEntities();
@ -1124,6 +1125,10 @@ namespace OpenSim.Region.Environment.Scenes
{ {
parenPrim.LinkToGroup(sceneObj); parenPrim.LinkToGroup(sceneObj);
} }
// We need to explicitly resend the newly link prim's object properties since no other actions
// occur on link to invoke this elsewhere (such as object selection)
parenPrim.GetProperties(client);
} }
/// <summary> /// <summary>

View File

@ -69,7 +69,7 @@ namespace OpenSim.Region.Environment.Scenes
} }
/// <summary> /// <summary>
/// /// Invoked when the client selects a prim.
/// </summary> /// </summary>
/// <param name="primLocalID"></param> /// <param name="primLocalID"></param>
/// <param name="remoteClient"></param> /// <param name="remoteClient"></param>
@ -81,7 +81,6 @@ namespace OpenSim.Region.Environment.Scenes
{ {
if (ent is SceneObjectGroup) if (ent is SceneObjectGroup)
{ {
if (((SceneObjectGroup) ent).LocalId == primLocalID) if (((SceneObjectGroup) ent).LocalId == primLocalID)
{ {
// A prim is only tainted if it's allowed to be edited by the person clicking it. // A prim is only tainted if it's allowed to be edited by the person clicking it.

View File

@ -2150,9 +2150,10 @@ namespace OpenSim.Region.Environment.Scenes
} }
/// <summary> /// <summary>
/// /// Sends a full update to the client
/// </summary> /// </summary>
/// <param name="remoteClient"></param> /// <param name="remoteClient"></param>
/// <param name="clientFlags"></param>
public void SendFullUpdateToClient(IClientAPI remoteClient, uint clientflags) public void SendFullUpdateToClient(IClientAPI remoteClient, uint clientflags)
{ {
LLVector3 lPos; LLVector3 lPos;
@ -2160,6 +2161,12 @@ namespace OpenSim.Region.Environment.Scenes
SendFullUpdateToClient(remoteClient, lPos, clientflags); SendFullUpdateToClient(remoteClient, lPos, clientflags);
} }
/// <summary>
/// Sends a full update to the client
/// </summary>
/// <param name="remoteClient"></param>
/// <param name="lPos"></param>
/// <param name="clientFlags"></param>
public void SendFullUpdateToClient(IClientAPI remoteClient, LLVector3 lPos, uint clientFlags) public void SendFullUpdateToClient(IClientAPI remoteClient, LLVector3 lPos, uint clientFlags)
{ {
LLQuaternion lRot; LLQuaternion lRot;