diff options
author | maksymsproductengine <maksymsproductengine@lindenlab.com> | 2012-11-15 15:32:02 -0800 |
---|---|---|
committer | maksymsproductengine <maksymsproductengine@lindenlab.com> | 2012-11-15 15:32:02 -0800 |
commit | 37d7f469055d3ba4b81815fa2ac8459022e1e3cf (patch) | |
tree | 3076dc97774710a39f70ca93389994e37e626020 /indra/llui/llfloater.cpp | |
parent | e89616aac812a7c6080d577f8a284f6df56a51ea (diff) |
CHUI-524: The root reason of crash was in the infinity recursion in the chain of calls LLFloater::setFocus->LLFloater::setFrontmost->LLFloaterView::bringToFront. And problem was not related to CHUI-362. Reviewed by Stinson.
Diffstat (limited to 'indra/llui/llfloater.cpp')
-rw-r--r-- | indra/llui/llfloater.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 0e57ba02bf..1b6e4ed0e5 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -2234,7 +2234,8 @@ LLFloaterView::LLFloaterView (const Params& p) mFocusCycleMode(FALSE), mMinimizePositionVOffset(0), mSnapOffsetBottom(0), - mSnapOffsetRight(0) + mSnapOffsetRight(0), + mFrontChild(NULL) { mSnapView = getHandle(); } @@ -2383,6 +2384,13 @@ LLRect LLFloaterView::findNeighboringPosition( LLFloater* reference_floater, LLF void LLFloaterView::bringToFront(LLFloater* child, BOOL give_focus) { + if (mFrontChild == child) + { + return; + } + + mFrontChild = child; + // *TODO: make this respect floater's mAutoFocus value, instead of // using parameter if (child->getHost()) |