This patch ensures that the touch positions are set during touch_end
events (currently only working for touch_start and touch events).
This commit is contained in:
Sean Dague
2009-06-19 12:21:20 +00:00
parent fa54ef5030
commit 1adeb8ad77
12 changed files with 52 additions and 18 deletions

View File

@@ -269,10 +269,14 @@ namespace OpenSim.Region.Framework.Scenes
}
}
public virtual void ProcessObjectDeGrab(uint localID, IClientAPI remoteClient)
public virtual void ProcessObjectDeGrab(uint localID, IClientAPI remoteClient, List<SurfaceTouchEventArgs> surfaceArgs)
{
List<EntityBase> EntityList = GetEntities();
SurfaceTouchEventArgs surfaceArg = null;
if (surfaceArgs != null && surfaceArgs.Count > 0)
surfaceArg = surfaceArgs[0];
foreach (EntityBase ent in EntityList)
{
if (ent is SceneObjectGroup)
@@ -288,9 +292,9 @@ namespace OpenSim.Region.Framework.Scenes
// If the touched prim handles touches, deliver it
// If not, deliver to root prim
if ((part.ScriptEvents & scriptEvents.touch_end) != 0)
EventManager.TriggerObjectDeGrab(part.LocalId, 0, remoteClient);
EventManager.TriggerObjectDeGrab(part.LocalId, 0, remoteClient, surfaceArg);
else
EventManager.TriggerObjectDeGrab(obj.RootPart.LocalId, part.LocalId, remoteClient);
EventManager.TriggerObjectDeGrab(obj.RootPart.LocalId, part.LocalId, remoteClient, surfaceArg);
return;
}