diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp index 7020ac0c6598d3b4dd3f647fc92f367ca417ad8b..edde7c8076c0703dba2aa3dbf481f2566042ebd4 100644 --- a/indra/newview/lltoast.cpp +++ b/indra/newview/lltoast.cpp @@ -202,6 +202,21 @@ void LLToast::hide() } } +/*virtual*/ +void LLToast::setFocus(BOOL b) +{ + if (b && !hasFocus() && mPanel) + { + LLModalDialog::setFocus(TRUE); + // mostly for buttons + mPanel->setFocus(TRUE); + } + else + { + LLModalDialog::setFocus(b); + } +} + void LLToast::onFocusLost() { if(mWrapperPanel && !isBackgroundVisible()) diff --git a/indra/newview/lltoast.h b/indra/newview/lltoast.h index f02d7c2a1a99ea8f5247a5401a527d8067739b08..cd92189012de3b394ced1313c8021a42a3f9d8eb 100644 --- a/indra/newview/lltoast.h +++ b/indra/newview/lltoast.h @@ -150,6 +150,8 @@ class LLToast : public LLModalDialog, public LLInstanceTracker<LLToast> // virtual void hide(); + /*virtual*/ void setFocus(BOOL b); + /*virtual*/ void onFocusLost(); /*virtual*/ void onFocusReceived();