diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 1746cfe..e005698 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -996,13 +996,24 @@ namespace OpenSim.Region.Framework.Scenes | |||
996 | if (item == null) | 996 | if (item == null) |
997 | return; | 997 | return; |
998 | 998 | ||
999 | if (item.Type == 10) | 999 | InventoryFolderBase destFolder = InventoryService.GetFolderForType(remoteClient.AgentId, AssetType.TrashFolder); |
1000 | |||
1001 | // Move the item to trash. If this is a copiable item, only | ||
1002 | // a copy will be moved and we will still need to delete | ||
1003 | // the item from the prim. If it was no copy, is will be | ||
1004 | // deleted by this method. | ||
1005 | MoveTaskInventoryItem(remoteClient, destFolder.ID, part, itemID); | ||
1006 | |||
1007 | if (group.GetInventoryItem(localID, itemID) != null) | ||
1000 | { | 1008 | { |
1001 | part.RemoveScriptEvents(itemID); | 1009 | if (item.Type == 10) |
1002 | EventManager.TriggerRemoveScript(localID, itemID); | 1010 | { |
1003 | } | 1011 | part.RemoveScriptEvents(itemID); |
1012 | EventManager.TriggerRemoveScript(localID, itemID); | ||
1013 | } | ||
1004 | 1014 | ||
1005 | group.RemoveInventoryItem(localID, itemID); | 1015 | group.RemoveInventoryItem(localID, itemID); |
1016 | } | ||
1006 | part.SendPropertiesToClient(remoteClient); | 1017 | part.SendPropertiesToClient(remoteClient); |
1007 | } | 1018 | } |
1008 | } | 1019 | } |
@@ -1065,7 +1076,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
1065 | if (!Permissions.BypassPermissions()) | 1076 | if (!Permissions.BypassPermissions()) |
1066 | { | 1077 | { |
1067 | if ((taskItem.CurrentPermissions & (uint)PermissionMask.Copy) == 0) | 1078 | if ((taskItem.CurrentPermissions & (uint)PermissionMask.Copy) == 0) |
1079 | { | ||
1080 | if (taskItem.Type == 10) | ||
1081 | { | ||
1082 | part.RemoveScriptEvents(itemId); | ||
1083 | EventManager.TriggerRemoveScript(part.LocalId, itemId); | ||
1084 | } | ||
1085 | |||
1068 | part.Inventory.RemoveInventoryItem(itemId); | 1086 | part.Inventory.RemoveInventoryItem(itemId); |
1087 | } | ||
1069 | } | 1088 | } |
1070 | 1089 | ||
1071 | return agentItem; | 1090 | return agentItem; |