diff options
author | Vadim ProductEngine <vsavchuk@productengine.com> | 2011-04-06 01:48:07 +0300 |
---|---|---|
committer | Vadim ProductEngine <vsavchuk@productengine.com> | 2011-04-06 01:48:07 +0300 |
commit | e710d740dcb14d696d3533071b030fd30e9cf198 (patch) | |
tree | a36e18792459b78e16496d1a8243356df804afc1 | |
parent | 4f09c204781d20e1b491b2aa22eed7c797685102 (diff) |
STORM-1028 WIP Fixing bottom bar buttons reshaping, tier 6
Fixed: if you slowly increase the viewer window width, the Speak button fails to expand.
-rw-r--r-- | indra/newview/llbottomtray.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp index 0f69c7e474..0a6dd7beff 100644 --- a/indra/newview/llbottomtray.cpp +++ b/indra/newview/llbottomtray.cpp @@ -912,15 +912,14 @@ void LLBottomTray::log(LLView* panel, const std::string& descr) { if (NULL == panel) return; LLView* layout = panel->getParent(); - lldebugs << descr << ": " + LL_DEBUGS("Bottom Tray Rects") << descr << ": " << "panel: " << panel->getName() << ", rect: " << panel->getRect() << " layout: " << layout->getName() << ", rect: " << layout->getRect() - << llendl - ; + << LL_ENDL; } void LLBottomTray::reshape(S32 width, S32 height, BOOL called_from_parent) @@ -1141,15 +1140,16 @@ void LLBottomTray::processWidthIncreased(S32 delta_width) lldebugs << "Distributing (" << getChicletPanelShrinkHeadroom() << " + " << delta_width << ") = " << available_width << " px" << llendl; + // 1. Try showing buttons that have been auto-hidden. S32 processed_width = processShowButtons(available_width); lldebugs << "processed_width = " << processed_width << ", delta_width = " << delta_width << llendl; lldebugs << "Available_width after showing buttons: " << available_width << llendl; - // if we have to show/extend some buttons but resized delta width is not enough... + // If the newly shown buttons have consumed more than delta_width pixels, + // shrink the chiclet panel. if (processed_width > delta_width) { - // ... let's shrink nearby chat & chiclet panels // 1. use delta width of resizing S32 shrink_by = processed_width - delta_width; @@ -1161,12 +1161,12 @@ void LLBottomTray::processWidthIncreased(S32 delta_width) log(mChicletPanel, "after applying compensative width for chiclets: "); lldebugs << shrink_by << llendl; } - } - // shown buttons take some space, rest should be processed by nearby chatbar & chiclet panels - delta_width -= processed_width; + // shown buttons take some space, rest should be processed by nearby chatbar & chiclet panels + delta_width -= processed_width; + } - // how much space can nearby chatbar take? + // 2. Expand the nearby chat bar if needed. S32 chatbar_panel_width = mChatBarContainer->getRect().getWidth(); lldebugs << "delta_width = " << delta_width << ", chatbar_panel_width = " << chatbar_panel_width @@ -1186,9 +1186,12 @@ void LLBottomTray::processWidthIncreased(S32 delta_width) log(mNearbyChatBar, "applied unprocessed delta width"); } + // 3. Expand buttons that have been auto-shrunk, + // if we haven't yet consumed all the available headroom. if (delta_width > 0) { - processExtendButtons(delta_width); + S32 available_width = delta_width + getChicletPanelShrinkHeadroom(); + processExtendButtons(available_width); } } |