From 32c44e48833f9eae1fae8e3e778c57b0f4e6a7b2 Mon Sep 17 00:00:00 2001 From: Lirusaito Date: Tue, 5 Mar 2019 15:23:04 -0500 Subject: [PATCH] Toggle typing with AO toggle --- indra/newview/floaterao.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/indra/newview/floaterao.cpp b/indra/newview/floaterao.cpp index 5485650c5..0a8eb744a 100644 --- a/indra/newview/floaterao.cpp +++ b/indra/newview/floaterao.cpp @@ -195,6 +195,12 @@ LLFloaterAO::LLFloaterAO(const LLSD&) : LLFloater("floater_ao") LLUICtrlFactory::getInstance()->buildFloater(this, "floater_ao.xml", nullptr, false); init(); gSavedSettings.getControl("AOEnabled")->getSignal()->connect(boost::bind(&LLFloaterAO::run)); + gSavedSettings.getControl("AOEnabled")->getSignal()->connect(std::bind([](const LLSD& enabled) + { + // Toggle typing AO the moment we toggle AO + const bool typing = gAgent.getRenderState() & AGENT_STATE_TYPING; + gAgent.sendAnimationRequest(GetAnimIDFromState(STATE_AGENT_TYPING), enabled && typing ? ANIM_REQUEST_START : ANIM_REQUEST_STOP); + }, std::placeholders::_2)); gSavedSettings.getControl("AOSitsEnabled")->getSignal()->connect(boost::bind(&LLFloaterAO::run)); sSwimming = is_underwater(); gSavedSettings.getControl("AOSwimEnabled")->getSignal()->connect(boost::bind(&LLFloaterAO::toggleSwim, boost::bind(is_underwater))); @@ -451,8 +457,6 @@ void LLFloaterAO::run() } gAgent.sendAnimationRequest(GetAnimIDFromState(state), (enabled && (!sit || gSavedSettings.getBOOL("AOSitsEnabled"))) ? ANIM_REQUEST_START : ANIM_REQUEST_STOP); } - if (!enabled) // Stop typing AO the moment we turn off AO - gAgent.sendAnimationRequest(GetAnimIDFromState(STATE_AGENT_TYPING), ANIM_REQUEST_STOP); } void LLFloaterAO::typing(bool start) @@ -461,7 +465,7 @@ void LLFloaterAO::typing(bool start) // If we're stopping, stop regardless, just in case the setting was toggled during (e.g.: keyboard shortcut) if (!start || gSavedSettings.getBOOL("PlayTypingAnim")) // Linden typing anims.push_back(ANIM_AGENT_TYPE); - if (!start || gSavedSettings.getBOOL("AOEnabled")) // Typing override + if (gSavedSettings.getBOOL("AOEnabled")) // Typing override anims.push_back(GetAnimIDFromState(STATE_AGENT_TYPING)); gAgent.sendAnimationRequests(anims, start ? ANIM_REQUEST_START : ANIM_REQUEST_STOP); }