diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-07-03 23:29:01 +0300 | 
|---|---|---|
| committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-07-03 23:29:26 +0300 | 
| commit | d3233e787aaf1ba0558a714d5216ea70c7249c36 (patch) | |
| tree | 4dea9d709f07b04fd0d9e42259a465df90ef8831 /indra | |
| parent | 35d68ce7373812d5ab028505ed035a4678da3ec9 (diff) | |
SL-19929 New inventory feature notification should appear on top
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llagent.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llfloaternewfeaturenotification.cpp | 21 | ||||
| -rw-r--r-- | indra/newview/llfloaternewfeaturenotification.h | 12 | 
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 | 
