summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llfloaterhoverheight.cpp10
-rw-r--r--indra/newview/llfloaterhoverheight.h2
-rw-r--r--indra/newview/llviewercontrol.cpp13
3 files changed, 16 insertions, 9 deletions
diff --git a/indra/newview/llfloaterhoverheight.cpp b/indra/newview/llfloaterhoverheight.cpp
index 003a22fa04..42c5e40761 100644
--- a/indra/newview/llfloaterhoverheight.cpp
+++ b/indra/newview/llfloaterhoverheight.cpp
@@ -39,7 +39,7 @@ LLFloaterHoverHeight::LLFloaterHoverHeight(const LLSD& key) : LLFloater(key)
{
}
-void LLFloaterHoverHeight::syncFromPreferenceSetting(void *user_data)
+void LLFloaterHoverHeight::syncFromPreferenceSetting(void *user_data, bool update_offset)
{
F32 value = gSavedPerAccountSettings.getF32("AvatarHoverOffsetZ");
@@ -47,7 +47,7 @@ void LLFloaterHoverHeight::syncFromPreferenceSetting(void *user_data)
LLSliderCtrl* sldrCtrl = self->getChild<LLSliderCtrl>("HoverHeightSlider");
sldrCtrl->setValue(value,FALSE);
- if (isAgentAvatarValid())
+ if (isAgentAvatarValid() && update_offset)
{
LLVector3 offset(0.0, 0.0, llclamp(value,MIN_HOVER_Z,MAX_HOVER_Z));
LL_INFOS("Avatar") << "setting hover from preference setting " << offset[2] << LL_ENDL;
@@ -70,7 +70,7 @@ BOOL LLFloaterHoverHeight::postBuild()
// Update slider on future pref changes.
if (gSavedPerAccountSettings.getControl("AvatarHoverOffsetZ"))
{
- gSavedPerAccountSettings.getControl("AvatarHoverOffsetZ")->getCommitSignal()->connect(boost::bind(&syncFromPreferenceSetting, this));
+ gSavedPerAccountSettings.getControl("AvatarHoverOffsetZ")->getCommitSignal()->connect(boost::bind(&syncFromPreferenceSetting, this, false));
}
else
{
@@ -114,10 +114,6 @@ void LLFloaterHoverHeight::onFinalCommit()
LLSliderCtrl* sldrCtrl = getChild<LLSliderCtrl>("HoverHeightSlider");
F32 value = sldrCtrl->getValueF32();
gSavedPerAccountSettings.setF32("AvatarHoverOffsetZ",value);
-
- LLVector3 offset(0.0, 0.0, llclamp(value,MIN_HOVER_Z,MAX_HOVER_Z));
- LL_INFOS("Avatar") << "setting hover from slider final commit " << offset[2] << LL_ENDL;
- gAgentAvatarp->setHoverOffset(offset, true); // will send update this time.
}
void LLFloaterHoverHeight::onRegionChanged()
diff --git a/indra/newview/llfloaterhoverheight.h b/indra/newview/llfloaterhoverheight.h
index ee065bc184..a643fa2516 100644
--- a/indra/newview/llfloaterhoverheight.h
+++ b/indra/newview/llfloaterhoverheight.h
@@ -39,7 +39,7 @@ public:
void onFinalCommit();
- static void syncFromPreferenceSetting(void *user_data);
+ static void syncFromPreferenceSetting(void *user_data, bool update_offset = true);
void onRegionChanged();
void onSimulatorFeaturesReceived(const LLUUID &region_id);
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index d9d66ef254..63c62fc990 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -126,6 +126,16 @@ static bool handleDebugAvatarJointsChanged(const LLSD& newvalue)
return true;
}
+static bool handleAvatarHoverOffsetChanged(const LLSD& newvalue)
+{
+ if (isAgentAvatarValid())
+ {
+ gAgentAvatarp->setHoverIfRegionEnabled();
+ }
+ return true;
+}
+
+
static bool handleSetShaderChanged(const LLSD& newvalue)
{
// changing shader level may invalidate existing cached bump maps, as the shader type determines the format of the bump map it expects - clear and repopulate the bump cache
@@ -734,7 +744,8 @@ void settings_setup_listeners()
gSavedSettings.getControl("SpellCheck")->getSignal()->connect(boost::bind(&handleSpellCheckChanged));
gSavedSettings.getControl("SpellCheckDictionary")->getSignal()->connect(boost::bind(&handleSpellCheckChanged));
gSavedSettings.getControl("LoginLocation")->getSignal()->connect(boost::bind(&handleLoginLocationChanged));
- gSavedSettings.getControl("DebugAvatarJoints")->getCommitSignal()->connect(boost::bind(&handleDebugAvatarJointsChanged, _2));
+ gSavedSettings.getControl("DebugAvatarJoints")->getCommitSignal()->connect(boost::bind(&handleDebugAvatarJointsChanged, _2));
+ gSavedPerAccountSettings.getControl("AvatarHoverOffsetZ")->getCommitSignal()->connect(boost::bind(&handleAvatarHoverOffsetChanged, _2));
}
#if TEST_CACHED_CONTROL