diff options
-rw-r--r-- | indra/newview/llfloaterhoverheight.cpp | 10 | ||||
-rw-r--r-- | indra/newview/llfloaterhoverheight.h | 2 | ||||
-rw-r--r-- | indra/newview/llviewercontrol.cpp | 13 |
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 ®ion_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 |