diff options
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 13 |
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 | } |