From af60b8ac16361f7b60318a93bf51f094375d0c26 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Tue, 10 Aug 2010 22:52:51 +0200 Subject: [PATCH] Set triggering the texture and height update on a two second timer. This fixes the texture rubberbanding. --- .../World/Estate/EstateManagementModule.cs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs index c6a1614d4a..27e492bc4d 100644 --- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs @@ -29,6 +29,7 @@ using System.Collections.Generic; using System.IO; using System.Reflection; using System.Security; +using System.Timers; using log4net; using Nini.Config; using OpenMetaverse; @@ -45,6 +46,7 @@ namespace OpenSim.Region.CoreModules.World.Estate private delegate void LookupUUIDS(List uuidLst); private Scene m_scene; + private Timer m_regionChangeTimer = new Timer(); private EstateTerrainXferHandler TerrainUploader; @@ -898,6 +900,9 @@ namespace OpenSim.Region.CoreModules.World.Estate m_scene.RegisterModuleInterface(this); m_scene.EventManager.OnNewClient += EventManager_OnNewClient; m_scene.EventManager.OnRequestChangeWaterHeight += changeWaterHeight; + m_regionChangeTimer.AutoReset = false; + m_regionChangeTimer.Interval = 2000; + m_regionChangeTimer.Elapsed += RaiseRegionInfoChange; m_scene.AddCommand(this, "set terrain texture", "set terrain texture [] []", @@ -949,8 +954,7 @@ namespace OpenSim.Region.CoreModules.World.Estate break; } m_scene.RegionInfo.RegionSettings.Save(); - //TriggerRegionInfoChange(); - TriggerEstateInfoChange(); + TriggerRegionInfoChange(); sendRegionInfoPacketToAll(); } @@ -996,8 +1000,7 @@ namespace OpenSim.Region.CoreModules.World.Estate break; } m_scene.RegionInfo.RegionSettings.Save(); - //TriggerRegionInfoChange(); - TriggerEstateInfoChange(); + TriggerRegionInfoChange(); sendRegionHandshakeToAll(); } } @@ -1169,6 +1172,12 @@ namespace OpenSim.Region.CoreModules.World.Estate } protected void TriggerRegionInfoChange() + { + m_regionChangeTimer.Stop(); + m_regionChangeTimer.Start(); + } + + protected void RaiseRegionInfoChange(object sender, ElapsedEventArgs e) { ChangeDelegate change = OnRegionInfoChange;