diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs index 8bf47e7..4c99873 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs | |||
@@ -251,16 +251,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
251 | 251 | ||
252 | // If the touched prim handles touches, deliver it | 252 | // If the touched prim handles touches, deliver it |
253 | // If not, deliver to root prim | 253 | // If not, deliver to root prim |
254 | if ((part.ScriptEvents & scriptEvents.touch_start) != 0) | 254 | if ((part.ScriptEvents & scriptEvents.touch_start) != 0) |
255 | EventManager.TriggerObjectGrab(part.LocalId, 0, part.OffsetPosition, remoteClient, surfaceArg); | 255 | EventManager.TriggerObjectGrab(part.LocalId, 0, part.OffsetPosition, remoteClient, surfaceArg); |
256 | // Deliver to the root prim if the touched prim doesn't handle touches | 256 | else |
257 | // or if we're meant to pass on touches anyway. Don't send to root prim | ||
258 | // if prim touched is the root prim as we just did it | ||
259 | if (((part.ScriptEvents & scriptEvents.touch_start) == 0) || | ||
260 | (part.PassTouches && (part.LocalId != obj.RootPart.LocalId))) | ||
261 | { | ||
262 | EventManager.TriggerObjectGrab(obj.RootPart.LocalId, part.LocalId, part.OffsetPosition, remoteClient, surfaceArg); | 257 | EventManager.TriggerObjectGrab(obj.RootPart.LocalId, part.LocalId, part.OffsetPosition, remoteClient, surfaceArg); |
263 | } | ||
264 | 258 | ||
265 | return; | 259 | return; |
266 | } | 260 | } |