diff options
author | Diva Canto | 2014-12-25 12:17:07 -0800 |
---|---|---|
committer | Diva Canto | 2014-12-25 12:17:07 -0800 |
commit | bb82076a4d2afd914d325f17443bb409d75bfe0e (patch) | |
tree | 88d90748a922ece49f17838ccf7c10a06f4cf2b1 /OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |
parent | Updated libomv to grab the latest bug fixes in Collada upload (diff) | |
download | opensim-SC-bb82076a4d2afd914d325f17443bb409d75bfe0e.zip opensim-SC-bb82076a4d2afd914d325f17443bb409d75bfe0e.tar.gz opensim-SC-bb82076a4d2afd914d325f17443bb409d75bfe0e.tar.bz2 opensim-SC-bb82076a4d2afd914d325f17443bb409d75bfe0e.tar.xz |
Allow for richer semantics of object derez. Specifically, allow the existence of region modules that do other kinds of garbage collection. Instead of placing deleted objects in the user's Trash folder, or deleting them immediately (UseTrashOnDelete = false), a module may decide to take garbage collection under its control. For example, it may place derezzed objects in a certain area inworld and delete them later.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.Inventory.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 5cc5606..b14e2f7 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -2182,13 +2182,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
2182 | } | 2182 | } |
2183 | } | 2183 | } |
2184 | 2184 | ||
2185 | // OK, we're done with permissions. Let's check if any part of the code prevents the objects from being deleted | ||
2186 | bool canDelete = EventManager.TriggerDeRezRequested(remoteClient, deleteGroups, action); | ||
2187 | |||
2185 | if (permissionToTake && (action != DeRezAction.Delete || this.m_useTrashOnDelete)) | 2188 | if (permissionToTake && (action != DeRezAction.Delete || this.m_useTrashOnDelete)) |
2186 | { | 2189 | { |
2187 | m_asyncSceneObjectDeleter.DeleteToInventory( | 2190 | m_asyncSceneObjectDeleter.DeleteToInventory( |
2188 | action, destinationID, deleteGroups, remoteClient, | 2191 | action, destinationID, deleteGroups, remoteClient, |
2189 | permissionToDelete); | 2192 | permissionToDelete && canDelete); |
2190 | } | 2193 | } |
2191 | else if (permissionToDelete) | 2194 | else if (permissionToDelete && canDelete) |
2192 | { | 2195 | { |
2193 | foreach (SceneObjectGroup g in deleteGroups) | 2196 | foreach (SceneObjectGroup g in deleteGroups) |
2194 | DeleteSceneObject(g, false); | 2197 | DeleteSceneObject(g, false); |