aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs13
1 files changed, 12 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 8adb281..86f10d7 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -148,7 +148,6 @@ namespace OpenSim.Region.Environment.Scenes
148 148
149 public virtual void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient) 149 public virtual void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient)
150 { 150 {
151 EventManager.TriggerObjectGrab(localID, offsetPos, remoteClient);
152 151
153 List<EntityBase> EntitieList = GetEntities(); 152 List<EntityBase> EntitieList = GetEntities();
154 153
@@ -158,9 +157,21 @@ namespace OpenSim.Region.Environment.Scenes
158 { 157 {
159 SceneObjectGroup obj = ent as SceneObjectGroup; 158 SceneObjectGroup obj = ent as SceneObjectGroup;
160 159
160 // Is this prim part of the group
161 if (obj.HasChildPrim(localID)) 161 if (obj.HasChildPrim(localID))
162 { 162 {
163 // Currently only grab/touch for the single prim
164 // the client handles rez correctly
163 obj.ObjectGrabHandler(localID, offsetPos, remoteClient); 165 obj.ObjectGrabHandler(localID, offsetPos, remoteClient);
166
167 // trigger event, one for each prim part in the group
168 // so that a touch to a non-root prim in a group will still
169 // trigger a touch_start for a script in the root prim
170 foreach (SceneObjectPart part in obj.Children.Values)
171 {
172 EventManager.TriggerObjectGrab(part.LocalID, part.OffsetPosition, remoteClient);
173 }
174
164 return; 175 return;
165 } 176 }
166 } 177 }