From 8d80ba856df7f5bc657db28db15cc193bcb89c27 Mon Sep 17 00:00:00 2001 From: Eugene Mutavchi Date: Wed, 20 Jan 2010 21:27:02 +0200 Subject: Fixed normal bug EXT-4465 (UI issue with scroll-bar in Voice Control panel) --HG-- branch : product-engine --- indra/newview/app_settings/settings.xml | 2 +- indra/newview/llcallfloater.cpp | 30 ++++++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 53ac1dc0b9..8b66dcb2da 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -1154,7 +1154,7 @@ Type S32 Value - 1 + 5 CameraAngle 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& 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("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("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(); -- cgit v1.2.3