diff options
-rw-r--r-- | indra/llui/lldockablefloater.cpp | 14 | ||||
-rw-r--r-- | indra/llui/lldockablefloater.h | 2 | ||||
-rw-r--r-- | indra/llui/llfloater.cpp | 11 | ||||
-rw-r--r-- | indra/newview/llpanelavatar.cpp | 2 | ||||
-rw-r--r-- | indra/newview/llpanelpick.cpp | 19 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/panel_people.xml | 1 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/panel_profile.xml | 13 |
7 files changed, 28 insertions, 34 deletions
diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp index 29f78f6290..ed15d9d922 100644 --- a/indra/llui/lldockablefloater.cpp +++ b/indra/llui/lldockablefloater.cpp @@ -35,7 +35,7 @@ #include "lldockablefloater.h" //static -LLDockableFloater* LLDockableFloater::instance = NULL; +LLHandle<LLFloater> LLDockableFloater::instanceHandle; LLDockableFloater::LLDockableFloater(LLDockControl* dockControl, const LLSD& key, const Params& params) : @@ -57,21 +57,21 @@ BOOL LLDockableFloater::postBuild() void LLDockableFloater::resetInstance() { - if (instance != this) + if (instanceHandle.get() != this) { - if (instance != NULL && instance->isDocked()) + if (instanceHandle.get() != NULL && instanceHandle.get()->isDocked()) { //closeFloater() is not virtual - if (instance->canClose()) + if (instanceHandle.get()->canClose()) { - instance->closeFloater(); + instanceHandle.get()->closeFloater(); } else { - instance->setVisible(FALSE); + instanceHandle.get()->setVisible(FALSE); } } - instance = this; + instanceHandle = getHandle(); } } diff --git a/indra/llui/lldockablefloater.h b/indra/llui/lldockablefloater.h index b977888803..1d0e89cef5 100644 --- a/indra/llui/lldockablefloater.h +++ b/indra/llui/lldockablefloater.h @@ -69,7 +69,7 @@ protected: private: std::auto_ptr<LLDockControl> mDockControl; LLUIImagePtr mDockTongue; - static LLDockableFloater* instance; + static LLHandle<LLFloater> instanceHandle; }; #endif /* LL_DOCKABLEFLOATER_H */ diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index c027b59c71..228e23b67e 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -1491,7 +1491,8 @@ LLFloater* LLFloater::getClosableFloaterFromFocus() // The focused floater may not be closable, // Find and close a parental floater that is closeable, if any. - for(LLFloater* floater_to_close = focused_floater; + LLFloater* prev_floater = NULL; + for(LLFloater* floater_to_close = focused_floater; NULL != floater_to_close; floater_to_close = gFloaterView->getParentFloater(floater_to_close)) { @@ -1499,6 +1500,14 @@ LLFloater* LLFloater::getClosableFloaterFromFocus() { return floater_to_close; } + + // If floater has as parent root view + // gFloaterView->getParentFloater(floater_to_close) returns + // the same floater_to_close, so we need to check this. + if (prev_floater == floater_to_close) { + break; + } + prev_floater = floater_to_close; } return NULL; diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index ba383a8dee..e0b7aeb77e 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -556,8 +556,6 @@ BOOL LLPanelAvatarMeProfile::postBuild() childSetCommitCallback("status_combo", boost::bind(&LLPanelAvatarMeProfile::onStatusChanged, this), NULL); childSetCommitCallback("status_me_message_text", boost::bind(&LLPanelAvatarMeProfile::onStatusMessageChanged, this), NULL); - childSetTextArg("partner_edit_link", "[URL]", getString("partner_edit_link_url")); - resetControls(); resetData(); diff --git a/indra/newview/llpanelpick.cpp b/indra/newview/llpanelpick.cpp index bde6d1cf6c..9ae58d1cb6 100644 --- a/indra/newview/llpanelpick.cpp +++ b/indra/newview/llpanelpick.cpp @@ -134,11 +134,13 @@ BOOL LLPanelPick::postBuild() childSetAction("teleport_btn", boost::bind(&LLPanelPick::onClickTeleport, this)); childSetAction("show_on_map_btn", boost::bind(&LLPanelPick::onClickMap, this)); - if (!mBackCb.empty()) - { - LLButton* button = findChild<LLButton>("back_btn"); - if (button) button->setClickedCallback(mBackCb); - } + } + + // EXT-822. We have to process "Back" button click in both Edit & View Modes + if (!mBackCb.empty()) + { + LLButton* button = findChild<LLButton>("back_btn"); + if (button) button->setClickedCallback(mBackCb); } return TRUE; @@ -435,11 +437,8 @@ void LLPanelPick::updateButtons() void LLPanelPick::setExitCallback(commit_callback_t cb) { mBackCb = cb; - if (!mEditMode) - { - LLButton* button = findChild<LLButton>("back_btn"); - if (button) button->setClickedCallback(mBackCb); - } + LLButton* button = findChild<LLButton>("back_btn"); + if (button) button->setClickedCallback(mBackCb); } //static diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml index e5a417e3d0..0af42bfc74 100644 --- a/indra/newview/skins/default/xui/en/panel_people.xml +++ b/indra/newview/skins/default/xui/en/panel_people.xml @@ -219,6 +219,7 @@ name="groups_panel" width="285"> <group_list + draw_heading="false" follows="left|top|right|bottom" height="357" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml index 41de34fbed..580855e115 100644 --- a/indra/newview/skins/default/xui/en/panel_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_profile.xml @@ -21,10 +21,6 @@ name="my_account_link_url" value="http://secondlife.com/account" /> <string - name="partner_edit_link_url"> - http://www.secondlife.com/account/partners.php?lang=en - </string> - <string name="no_partner_text" value="None" /> <scroll_container @@ -217,15 +213,6 @@ top_pad="15" value="Partner:" width="100" /> - <text - follows="left|top" - height="15" - layout="topleft" - left_pad="10" - name="partner_edit_link" - top_delta="0" - value="[[URL] Edit]" - width="100" /> <panel follows="left|top|right" height="15" |