aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs20
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs8
2 files changed, 22 insertions, 6 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 7c0cd77..c393479 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -104,11 +104,16 @@ namespace OpenSim.Region.Environment.Scenes
104 { 104 {
105 if (ent is SceneObjectGroup) 105 if (ent is SceneObjectGroup)
106 { 106 {
107
107 if (((SceneObjectGroup) ent).LocalId == primLocalID) 108 if (((SceneObjectGroup) ent).LocalId == primLocalID)
108 { 109 {
109 ((SceneObjectGroup) ent).GetProperties(remoteClient); 110 // A prim is only tainted if it's allowed to be edited by the person clicking it.
110 ((SceneObjectGroup) ent).IsSelected = true; 111 if (m_permissionManager.CanEditObjectPosition(remoteClient.AgentId, ((SceneObjectGroup)ent).UUID) || m_permissionManager.CanEditObject(remoteClient.AgentId, ((SceneObjectGroup)ent).UUID))
111 LandManager.setPrimsTainted(); 112 {
113 ((SceneObjectGroup) ent).GetProperties(remoteClient);
114 ((SceneObjectGroup) ent).IsSelected = true;
115 LandManager.setPrimsTainted();
116 }
112 break; 117 break;
113 } 118 }
114 } 119 }
@@ -130,9 +135,12 @@ namespace OpenSim.Region.Environment.Scenes
130 { 135 {
131 if (((SceneObjectGroup) ent).LocalId == primLocalID) 136 if (((SceneObjectGroup) ent).LocalId == primLocalID)
132 { 137 {
133 ((SceneObjectGroup) ent).IsSelected = false; 138 if (m_permissionManager.CanEditObjectPosition(remoteClient.AgentId, ((SceneObjectGroup)ent).UUID) || m_permissionManager.CanEditObject(remoteClient.AgentId, ((SceneObjectGroup)ent).UUID))
134 LandManager.setPrimsTainted(); 139 {
135 break; 140 ((SceneObjectGroup) ent).IsSelected = false;
141 LandManager.setPrimsTainted();
142 break;
143 }
136 } 144 }
137 } 145 }
138 } 146 }
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 8fd9edb..801e614 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -203,6 +203,14 @@ namespace OpenSim.Region.Environment.Scenes
203 if (m_rootPart.PhysActor != null) 203 if (m_rootPart.PhysActor != null)
204 { 204 {
205 m_rootPart.PhysActor.Selected = value; 205 m_rootPart.PhysActor.Selected = value;
206 // Pass it on to the children.
207 foreach (SceneObjectPart child in Children.Values)
208 {
209 if (child.PhysActor != null)
210 {
211 child.PhysActor.Selected = value;
212 }
213 }
206 } 214 }
207 } 215 }
208 } 216 }