mirror of
https://github.com/opensim/opensim.git
synced 2026-08-10 03:06:05 +08:00
Defer sending of CHANGED_OWNER to make it work on rezzed objects and
attachments in addition to objects sold in place
This commit is contained in:
@@ -122,6 +122,8 @@ namespace OpenSim.Framework
|
||||
private int _type = 0;
|
||||
private UUID _oldID;
|
||||
|
||||
private bool _ownerChanged = false;
|
||||
|
||||
public UUID AssetID {
|
||||
get {
|
||||
return _assetID;
|
||||
@@ -320,6 +322,15 @@ namespace OpenSim.Framework
|
||||
}
|
||||
}
|
||||
|
||||
public bool OwnerChanged {
|
||||
get {
|
||||
return _ownerChanged;
|
||||
}
|
||||
set {
|
||||
_ownerChanged = value;
|
||||
}
|
||||
}
|
||||
|
||||
// See ICloneable
|
||||
|
||||
#region ICloneable Members
|
||||
|
||||
@@ -955,10 +955,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
item.CurrentPermissions &= item.NextPermissions;
|
||||
item.BasePermissions &= item.NextPermissions;
|
||||
item.EveryonePermissions &= item.NextPermissions;
|
||||
item.OwnerChanged = true;
|
||||
}
|
||||
}
|
||||
|
||||
m_part.TriggerScriptChangedEvent(Changed.OWNER);
|
||||
}
|
||||
|
||||
public void ApplyGodPermissions(uint perms)
|
||||
@@ -1042,7 +1041,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
if (engines == null)
|
||||
return;
|
||||
|
||||
|
||||
lock (m_items)
|
||||
{
|
||||
foreach (TaskInventoryItem item in m_items.Values)
|
||||
@@ -1052,7 +1050,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
foreach (IScriptModule engine in engines)
|
||||
{
|
||||
if (engine != null)
|
||||
{
|
||||
engine.PostScriptEvent(item.ItemID, "changed", new Object[] { Changed.OWNER });
|
||||
engine.ResumeScript(item.ItemID);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user