summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/lltoastscriptquestion.cpp19
-rw-r--r--indra/newview/lltoastscriptquestion.h2
2 files changed, 21 insertions, 0 deletions
diff --git a/indra/newview/lltoastscriptquestion.cpp b/indra/newview/lltoastscriptquestion.cpp
index 91ba8c0247..7a3a1d8fd7 100644
--- a/indra/newview/lltoastscriptquestion.cpp
+++ b/indra/newview/lltoastscriptquestion.cpp
@@ -54,6 +54,19 @@ BOOL LLToastScriptQuestion::postBuild()
return TRUE;
}
+
+// virtual
+void LLToastScriptQuestion::setFocus(BOOL b)
+{
+ LLToastPanel::setFocus(b);
+ // toast can fade out and disappear with focus ON, so reset to default anyway
+ LLButton* dfbutton = getDefaultButton();
+ if (dfbutton && dfbutton->getVisible() && dfbutton->getEnabled())
+ {
+ dfbutton->setFocus(b);
+ }
+}
+
void LLToastScriptQuestion::snapToMessageHeight()
{
LLTextBox* mMessage = getChild<LLTextBox>("top_info_message");
@@ -118,6 +131,12 @@ void LLToastScriptQuestion::createButtons()
button->setRect(rect);
buttons_width += rect.getWidth() + LEFT_PAD;
+
+ if (form_element.has("default") && form_element["default"].asBoolean())
+ {
+ button->setFocus(TRUE);
+ setDefaultBtn(button);
+ }
}
}
}
diff --git a/indra/newview/lltoastscriptquestion.h b/indra/newview/lltoastscriptquestion.h
index 3a557f60f6..a756f88415 100644
--- a/indra/newview/lltoastscriptquestion.h
+++ b/indra/newview/lltoastscriptquestion.h
@@ -39,6 +39,8 @@ public:
virtual BOOL postBuild();
virtual ~LLToastScriptQuestion(){};
+ /*virtual*/ void setFocus(BOOL b);
+
private:
void snapToMessageHeight();