summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Zaporozhan <dzaporozhan@productengine.com>2010-01-21 13:04:45 +0200
committerDmitry Zaporozhan <dzaporozhan@productengine.com>2010-01-21 13:04:45 +0200
commit9b1f9065f099ee3f1b66bd1ce9208c69ca3aea20 (patch)
tree88105e2504a4cc883d18d4d50c7343a34724a3c2
parent2cd45c80e8e4da2b9224d8d1d1f5c88756c4e031 (diff)
Fixed normal bug EXT-4297 - Voice Control Panel resizing behavior.
Also encreased floater minimum height to show one participant(this fixes ghost scrollbar) --HG-- branch : product-engine
-rw-r--r--indra/newview/llcallfloater.cpp76
-rw-r--r--indra/newview/llcallfloater.h5
-rw-r--r--indra/newview/skins/default/xui/en/floater_voice_controls.xml10
3 files changed, 5 insertions, 86 deletions
diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp
index e36dee4d91..5c4a02f013 100644
--- a/indra/newview/llcallfloater.cpp
+++ b/indra/newview/llcallfloater.cpp
@@ -226,16 +226,6 @@ void LLCallFloater::onChange()
}
}
-S32 LLCallFloater::notifyParent(const LLSD& info)
-{
- if("size_changes" == info["action"])
- {
- reshapeToFitContent();
- return 1;
- }
- return LLDockableFloater::notifyParent(info);
-}
-
//////////////////////////////////////////////////////////////////////////
/// PRIVATE SECTION
//////////////////////////////////////////////////////////////////////////
@@ -824,72 +814,6 @@ void LLCallFloater::reset()
mSpeakerManager = NULL;
}
-void reshape_floater(LLCallFloater* floater, S32 delta_height)
-{
- // Try to update floater top side if it is docked(to bottom bar).
- // Try to update floater bottom side or top side if it is un-docked.
- // If world rect is too small, floater will not be reshaped at all.
-
- LLRect floater_rect = floater->getRect();
- LLRect world_rect = gViewerWindow->getWorldViewRectScaled();
-
- // floater is docked to bottom bar
- if(floater->isDocked())
- {
- // can update floater top side
- if(floater_rect.mTop + delta_height < world_rect.mTop)
- {
- floater_rect.set(floater_rect.mLeft, floater_rect.mTop + delta_height,
- floater_rect.mRight, floater_rect.mBottom);
- }
- }
- // floater is un-docked
- else
- {
- // can update floater bottom side
- if( floater_rect.mBottom - delta_height >= world_rect.mBottom )
- {
- floater_rect.set(floater_rect.mLeft, floater_rect.mTop,
- floater_rect.mRight, floater_rect.mBottom - delta_height);
- }
- // could not update floater bottom side, check if we can update floater top side
- else if( floater_rect.mTop + delta_height < world_rect.mTop )
- {
- floater_rect.set(floater_rect.mLeft, floater_rect.mTop + delta_height,
- floater_rect.mRight, floater_rect.mBottom);
- }
- }
-
- floater->setShape(floater_rect);
- floater->getChild<LLLayoutStack>("my_call_stack")->updateLayout(FALSE);
-}
-
-void LLCallFloater::reshapeToFitContent()
-{
- const S32 ITEM_HEIGHT = getParticipantItemHeight();
- static const S32 MAX_VISIBLE_ITEMS = getMaxVisibleItems();
-
- static S32 items_pad = mAvatarList->getItemsPad();
- S32 list_height = mAvatarList->getRect().getHeight();
- S32 items_height = mAvatarList->getItemsRect().getHeight();
- if(items_height <= 0)
- {
- // make "no one near" text visible
- items_height = ITEM_HEIGHT + items_pad;
- }
- S32 max_list_height = MAX_VISIBLE_ITEMS * ITEM_HEIGHT + items_pad * (MAX_VISIBLE_ITEMS - 1);
- max_list_height += 2* mAvatarList->getBorderWidth();
-
- S32 delta = items_height - list_height;
- // too many items, don't reshape floater anymore, let scroll bar appear.
- if(items_height > max_list_height)
- {
- delta = max_list_height - list_height;
- }
-
- reshape_floater(this, delta);
-}
-
S32 LLCallFloater::getParticipantItemHeight()
{
std::vector<LLPanel*> items;
diff --git a/indra/newview/llcallfloater.h b/indra/newview/llcallfloater.h
index 2b40225906..1d010839f1 100644
--- a/indra/newview/llcallfloater.h
+++ b/indra/newview/llcallfloater.h
@@ -75,11 +75,6 @@ public:
*/
/*virtual*/ void onChange();
- /**
- * Will reshape floater when participant list size changes
- */
- /*virtual*/ S32 notifyParent(const LLSD& info);
-
static void sOnCurrentChannelChanged(const LLUUID& session_id);
private:
diff --git a/indra/newview/skins/default/xui/en/floater_voice_controls.xml b/indra/newview/skins/default/xui/en/floater_voice_controls.xml
index ae198d69a3..f473a51ff6 100644
--- a/indra/newview/skins/default/xui/en/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/en/floater_voice_controls.xml
@@ -3,9 +3,9 @@
can_resize="true"
can_minimize="true"
can_close="false"
- height="275"
+ height="202"
layout="topleft"
- min_height="100"
+ min_height="124"
min_width="190"
name="floater_voice_controls"
help_topic="floater_voice_controls"
@@ -36,7 +36,7 @@
<layout_stack
clip="false"
follows="all"
- height="262"
+ height="189"
layout="topleft"
left="10"
mouse_opaque="false"
@@ -105,13 +105,13 @@
layout="topleft"
left="2"
top_pad="0"
- height="205"
+ height="132"
name="callers_panel"
user_resize="false"
width="280">
<avatar_list
follows="all"
- height="205"
+ height="132"
ignore_online_status="true"
layout="topleft"
multi_select="true"