summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llagent.cpp7
-rw-r--r--indra/newview/llfloaternewfeaturenotification.cpp21
-rw-r--r--indra/newview/llfloaternewfeaturenotification.h12
3 files changed, 25 insertions, 15 deletions
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 2430ca5f83..8574134032 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -582,7 +582,12 @@ void LLAgent::showLatestFeatureNotification()
S32 feature_version = gSavedSettings.getS32("LastUIFeatureVersion");
if (feature_version < UI_FEATURE_VERSION)
{
- LLFloaterReg::showInstance("new_feature_notification");
+ // Need to open on top even if called from onOpen,
+ // do on idle to make sure it's on top
+ doOnIdleOneTime([]()
+ {
+ LLFloaterReg::showInstance("new_feature_notification");
+ });
gSavedSettings.setS32("LastUIFeatureVersion", UI_FEATURE_VERSION);
}
}
diff --git a/indra/newview/llfloaternewfeaturenotification.cpp b/indra/newview/llfloaternewfeaturenotification.cpp
index e04b1a5da5..7c3fe8cdc8 100644
--- a/indra/newview/llfloaternewfeaturenotification.cpp
+++ b/indra/newview/llfloaternewfeaturenotification.cpp
@@ -30,7 +30,7 @@
LLFloaterNewFeatureNotification::LLFloaterNewFeatureNotification(const LLSD& key)
- : LLFloater(key)
+ : LLFloater(key)
{
}
@@ -40,24 +40,29 @@ LLFloaterNewFeatureNotification::~LLFloaterNewFeatureNotification()
BOOL LLFloaterNewFeatureNotification::postBuild()
{
- setCanDrag(FALSE);
- getChild<LLButton>("close_btn")->setCommitCallback(boost::bind(&LLFloaterNewFeatureNotification::onCloseBtn, this));
- return TRUE;
+ setCanDrag(FALSE);
+ getChild<LLButton>("close_btn")->setCommitCallback(boost::bind(&LLFloaterNewFeatureNotification::onCloseBtn, this));
+ return TRUE;
}
void LLFloaterNewFeatureNotification::onOpen(const LLSD& key)
{
- centerOnScreen();
+ centerOnScreen();
}
void LLFloaterNewFeatureNotification::onCloseBtn()
{
- closeFloater();
+ closeFloater();
}
void LLFloaterNewFeatureNotification::centerOnScreen()
{
- LLVector2 window_size = LLUI::getInstance()->getWindowSize();
- centerWithin(LLRect(0, 0, ll_round(window_size.mV[VX]), ll_round(window_size.mV[VY])));
+ LLVector2 window_size = LLUI::getInstance()->getWindowSize();
+ centerWithin(LLRect(0, 0, ll_round(window_size.mV[VX]), ll_round(window_size.mV[VY])));
+ LLFloaterView* parent = dynamic_cast<LLFloaterView*>(getParent());
+ if (parent)
+ {
+ parent->bringToFront(this);
+ }
}
diff --git a/indra/newview/llfloaternewfeaturenotification.h b/indra/newview/llfloaternewfeaturenotification.h
index 86e9683def..95501451dc 100644
--- a/indra/newview/llfloaternewfeaturenotification.h
+++ b/indra/newview/llfloaternewfeaturenotification.h
@@ -30,20 +30,20 @@
#include "llfloater.h"
class LLFloaterNewFeatureNotification:
- public LLFloater
+ public LLFloater
{
- friend class LLFloaterReg;
+ friend class LLFloaterReg;
public:
- BOOL postBuild() override;
- void onOpen(const LLSD& key) override;
+ BOOL postBuild() override;
+ void onOpen(const LLSD& key) override;
private:
LLFloaterNewFeatureNotification(const LLSD& key);
/*virtual*/ ~LLFloaterNewFeatureNotification();
- void centerOnScreen();
+ void centerOnScreen();
- void onCloseBtn();
+ void onCloseBtn();
};
#endif