summaryrefslogtreecommitdiff
path: root/indra/llui/llfloater.cpp
diff options
context:
space:
mode:
authorRichard Nelson <richard@lindenlab.com>2007-04-05 00:59:55 +0000
committerRichard Nelson <richard@lindenlab.com>2007-04-05 00:59:55 +0000
commit2ce0fc5f185f22be79b9be5406b76c97ed91ee01 (patch)
treed70ea9faf02e4e1e7aeb14aa524644c23c703d55 /indra/llui/llfloater.cpp
parentfd5608a3e79397d4ebc8819dc9de75863f6fb9b3 (diff)
svn merge -r 59234:60086 svn+ssh://svn/svn/linden/branches/live_lsl_help2 -> release
Diffstat (limited to 'indra/llui/llfloater.cpp')
-rw-r--r--indra/llui/llfloater.cpp37
1 files changed, 17 insertions, 20 deletions
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 1f71de1c87..c3364a7a35 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -38,6 +38,8 @@ extern BOOL gNoRender;
const S32 MINIMIZED_WIDTH = 160;
const S32 CLOSE_BOX_FROM_TOP = 1;
+// use this to control "jumping" behavior when Ctrl-Tabbing
+const S32 TABBED_FLOATER_OFFSET = 0;
LLString LLFloater::sButtonActiveImageNames[BUTTON_COUNT] =
{
@@ -2169,32 +2171,27 @@ void LLFloaterView::adjustToFitScreen(LLFloater* floater, BOOL allow_partial_out
void LLFloaterView::draw()
{
- if( getVisible() )
- {
- refresh();
-
- // hide focused floater if in cycle mode, so that it can be drawn on top
- LLFloater* focused_floater = getFocusedFloater();
- BOOL floater_visible = FALSE;
- if (mFocusCycleMode && focused_floater)
- {
- floater_visible = focused_floater->getVisible();
- focused_floater->setVisible(FALSE);
- }
+ refresh();
- // And actually do the draw
- LLView::draw();
+ // hide focused floater if in cycle mode, so that it can be drawn on top
+ LLFloater* focused_floater = getFocusedFloater();
- // manually draw focused floater on top when in cycle mode
- if (mFocusCycleMode && focused_floater)
+ if (mFocusCycleMode && focused_floater)
+ {
+ child_list_const_iter_t child_it = getChildList()->begin();
+ for (;child_it != getChildList()->end(); ++child_it)
{
- // draw focused item on top for better feedback
- focused_floater->setVisible(floater_visible);
- if (floater_visible)
+ if ((*child_it) != focused_floater)
{
- drawChild(focused_floater);
+ drawChild(*child_it);
}
}
+
+ drawChild(focused_floater, -TABBED_FLOATER_OFFSET, TABBED_FLOATER_OFFSET);
+ }
+ else
+ {
+ LLView::draw();
}
}