aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack
diff options
context:
space:
mode:
authorUbitUmarov2016-07-13 15:56:01 +0100
committerUbitUmarov2016-07-13 15:56:01 +0100
commitacebfeb5c96c3f11a514541069d3d7d81697b500 (patch)
tree4b954abb3a4ee9d3bf87e2b0f3edec0d201ebf34 /OpenSim/Region/ClientStack
parentignore camera on culling for now (diff)
downloadopensim-SC_OLD-acebfeb5c96c3f11a514541069d3d7d81697b500.zip
opensim-SC_OLD-acebfeb5c96c3f11a514541069d3d7d81697b500.tar.gz
opensim-SC_OLD-acebfeb5c96c3f11a514541069d3d7d81697b500.tar.bz2
opensim-SC_OLD-acebfeb5c96c3f11a514541069d3d7d81697b500.tar.xz
don't overlap Select and Deselect, fix deselect prims account
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs43
1 files changed, 29 insertions, 14 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 0a7f1a8..bd6cafc 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -7681,15 +7681,23 @@ namespace OpenSim.Region.ClientStack.LindenUDP
7681 #endregion 7681 #endregion
7682 7682
7683 ObjectSelect handlerObjectSelect = null; 7683 ObjectSelect handlerObjectSelect = null;
7684 7684 uint objID;
7685 for (int i = 0; i < incomingselect.ObjectData.Length; i++) 7685 lock(SelectedObjects)
7686 { 7686 {
7687 if (!SelectedObjects.Contains(incomingselect.ObjectData[i].ObjectLocalID)) 7687 for (int i = 0; i < incomingselect.ObjectData.Length; i++)
7688 SelectedObjects.Add(incomingselect.ObjectData[i].ObjectLocalID);
7689 handlerObjectSelect = OnObjectSelect;
7690 if (handlerObjectSelect != null)
7691 { 7688 {
7692 handlerObjectSelect(incomingselect.ObjectData[i].ObjectLocalID, this); 7689 objID = incomingselect.ObjectData[i].ObjectLocalID;
7690
7691 if (!SelectedObjects.Contains(objID))
7692 {
7693 SelectedObjects.Add(objID);
7694
7695 handlerObjectSelect = OnObjectSelect;
7696 if (handlerObjectSelect != null)
7697 {
7698 handlerObjectSelect(objID, this);
7699 }
7700 }
7693 } 7701 }
7694 } 7702 }
7695 return true; 7703 return true;
@@ -7709,15 +7717,22 @@ namespace OpenSim.Region.ClientStack.LindenUDP
7709 #endregion 7717 #endregion
7710 7718
7711 ObjectDeselect handlerObjectDeselect = null; 7719 ObjectDeselect handlerObjectDeselect = null;
7712 7720 uint objID;
7713 for (int i = 0; i < incomingdeselect.ObjectData.Length; i++) 7721 lock(SelectedObjects)
7714 { 7722 {
7715 if (!SelectedObjects.Contains(incomingdeselect.ObjectData[i].ObjectLocalID)) 7723 for (int i = 0; i < incomingdeselect.ObjectData.Length; i++)
7716 SelectedObjects.Add(incomingdeselect.ObjectData[i].ObjectLocalID);
7717 handlerObjectDeselect = OnObjectDeselect;
7718 if (handlerObjectDeselect != null)
7719 { 7724 {
7720 OnObjectDeselect(incomingdeselect.ObjectData[i].ObjectLocalID, this); 7725 objID = incomingdeselect.ObjectData[i].ObjectLocalID;
7726 if (SelectedObjects.Contains(objID))
7727 {
7728 SelectedObjects.Remove(objID);
7729
7730 handlerObjectDeselect = OnObjectDeselect;
7731 if (handlerObjectDeselect != null)
7732 {
7733 OnObjectDeselect(objID, this);
7734 }
7735 }
7721 } 7736 }
7722 } 7737 }
7723 return true; 7738 return true;