summaryrefslogtreecommitdiff
path: root/indra/newview/llcallfloater.cpp
diff options
context:
space:
mode:
authorEugene Mutavchi <emutavchi@productengine.com>2010-01-20 21:27:02 +0200
committerEugene Mutavchi <emutavchi@productengine.com>2010-01-20 21:27:02 +0200
commit8d80ba856df7f5bc657db28db15cc193bcb89c27 (patch)
treeecf42b214e68585e48fc1564da3ccae535b64c9d /indra/newview/llcallfloater.cpp
parent69c803fec5e3cb5b3ed890a1fffffd8af76f78ab (diff)
Fixed normal bug EXT-4465 (UI issue with scroll-bar in Voice Control panel)
--HG-- branch : product-engine
Diffstat (limited to 'indra/newview/llcallfloater.cpp')
-rw-r--r--indra/newview/llcallfloater.cpp30
1 files changed, 28 insertions, 2 deletions
diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp
index 6317a6a392..49532aec12 100644
--- a/indra/newview/llcallfloater.cpp
+++ b/indra/newview/llcallfloater.cpp
@@ -54,6 +54,7 @@
#include "lllayoutstack.h"
static void get_voice_participants_uuids(std::vector<LLUUID>& speakers_uuids);
+void reshape_floater(LLCallFloater* floater, S32 delta_height);
class LLNonAvatarCaller : public LLAvatarListItem
{
@@ -315,8 +316,33 @@ void LLCallFloater::updateSession()
//hide "Leave Call" button for nearby chat
bool is_local_chat = mVoiceType == VC_LOCAL_CHAT;
- childSetVisible("leave_call_btn_panel", !is_local_chat);
-
+
+ LLPanel* leave_panel = findChild<LLPanel>("leave_call_btn_panel");
+ if (leave_panel)
+ {
+ S32 delta = 0;
+ bool visible = !is_local_chat;
+ if (leave_panel->getVisible() != visible)
+ {
+ delta = visible
+ ? leave_panel->getRect().getHeight()
+ : -leave_panel->getRect().getHeight();
+ }
+ leave_panel->setVisible(visible);
+ if (delta)
+ {
+ LLLayoutStack* stack = getChild<LLLayoutStack>("my_call_stack");
+ BOOL animate = stack->getAnimate();
+ // Disable animation to prevent layout updating in several frames.
+ // We need this to get work reshapeToFitContent properly, otherwise
+ // the height of leave_call_btn_panel won't be completely included.
+ stack->setAnimate(FALSE);
+ reshape_floater(this, delta);
+ // Restore animate state.
+ stack->setAnimate(animate);
+ }
+ }
+
refreshParticipantList();
updateAgentModeratorState();