diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2012-11-05 16:34:12 -0500 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2012-11-05 16:34:12 -0500 |
commit | 379bc7bd1db5a728a730f7e0e7d0a3bfbdfc3870 (patch) | |
tree | 1fcc28c339e30905c276556d2718a66dc6094db1 | |
parent | ad4102db1b0b6730d6d1fe7119cab2149bb48e2c (diff) |
STEAM-14: login when user presses Enter at username or password.
The tricky thing about this fix is that the "Log In" button used to be in the
same layout_panel as the username and password fields. Now it's not, so the
fact that it's the default button for its layout_panel doesn't matter because
that layout_panel doesn't have focus. Richard pointed out that we can make the
commit action for the username and password fields initiate login -- as long
as neither field implicitly runs its commit action when it loses focus!
-rw-r--r-- | indra/newview/llpanellogin.cpp | 18 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/panel_login.xml | 8 |
2 files changed, 20 insertions, 6 deletions
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index 58e9a6b342..bcb90bcb56 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -139,14 +139,17 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, mLogoImage = LLUI::getUIImage("startup_logo"); buildFromFile( "panel_login.xml"); - + reshape(rect.getWidth(), rect.getHeight()); - getChild<LLLineEditor>("password_edit")->setKeystrokeCallback(onPassKey, this); + LLLineEditor* password_edit(getChild<LLLineEditor>("password_edit")); + password_edit->setKeystrokeCallback(onPassKey, this); + // STEAM-14: When user presses Enter with this field in focus, initiate login + password_edit->setCommitCallback(boost::bind(&LLPanelLogin::onClickConnect, this)); // change z sort of clickable text to be behind buttons sendChildToBack(getChildView("forgot_password_text")); - + LLComboBox* location_combo = getChild<LLComboBox>("start_location_combo"); updateLocationSelectorsVisibility(); // separate so that it can be called from preferences location_combo->setFocusLostCallback(boost::bind(&LLPanelLogin::onLocationSLURL, this)); @@ -220,14 +223,17 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, // get the web browser control LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("login_html"); web_browser->addObserver(this); - + reshapeBrowser(); loadLoginPage(); - + // Show last logged in user favorites in "Start at" combo. addUsersWithFavoritesToUsername(); - getChild<LLComboBox>("username_combo")->setTextChangedCallback(boost::bind(&LLPanelLogin::addFavoritesToStartLocation, this)); + LLComboBox* username_combo(getChild<LLComboBox>("username_combo")); + username_combo->setTextChangedCallback(boost::bind(&LLPanelLogin::addFavoritesToStartLocation, this)); + // STEAM-14: When user presses Enter with this field in focus, initiate login + username_combo->setCommitCallback(boost::bind(&LLPanelLogin::onClickConnect, this)); } void LLPanelLogin::addUsersWithFavoritesToUsername() diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml index 6c4cbd4627..134ca75018 100644 --- a/indra/newview/skins/default/xui/en/panel_login.xml +++ b/indra/newview/skins/default/xui/en/panel_login.xml @@ -69,12 +69,16 @@ width="150"> Username: </text> + <!-- STEAM-14: Turn off commit_on_focus_lost so if user presses Enter + with focus in this combo_box, we can use commit action to initiate + login --> <combo_box allow_text_entry="true" follows="left|bottom" height="22" left_delta="0" max_chars="128" + commit_on_focus_lost="false" combo_editor.prevalidate_callback="ascii" tool_tip="The username you chose when you registered, like bobsmith12 or Steller Sunshine" top_pad="0" @@ -97,6 +101,9 @@ width="150"> Password: </text> + <!-- STEAM-14: Turn off commit_on_focus_lost so if user presses Enter + with focus in this line_editor, we can use commit action to + initiate login --> <line_editor follows="left|bottom" height="22" @@ -104,6 +111,7 @@ name="password_edit" is_password="true" select_on_focus="true" + commit_on_focus_lost="false" top_pad="0" width="135" /> </layout_panel> |