diff options
| -rw-r--r-- | indra/newview/lltoastalertpanel.cpp | 16 | ||||
| -rw-r--r-- | indra/newview/lltoastalertpanel.h | 1 | 
2 files changed, 17 insertions, 0 deletions
| diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp index 12ad071799..ada7570776 100644 --- a/indra/newview/lltoastalertpanel.cpp +++ b/indra/newview/lltoastalertpanel.cpp @@ -69,6 +69,15 @@ LLToastAlertPanel::LLToastAlertPanel( LLNotificationPtr notification, bool modal  		mLabel(notification->getName()),  		mLineEditor(NULL)  { +	// EXP-1822 +	// save currently focused view, so that return focus to it +	// on destroying this toast. +	LLView* current_selection = dynamic_cast<LLView*>(gFocusMgr.getKeyboardFocus()); +	if (current_selection) +	{ +		mPreviouslyFocusedView = current_selection->getHandle(); +	} +  	const LLFontGL* font = LLFontGL::getFontSansSerif();  	const S32 LINE_HEIGHT = font->getLineHeight();  	const S32 EDITOR_HEIGHT = 20; @@ -408,6 +417,13 @@ LLToastAlertPanel::~LLToastAlertPanel()  {  	LLTransientFloaterMgr::instance().removeControlView(  			LLTransientFloaterMgr::GLOBAL, this); + +	// EXP-1822 +	// return focus to the previously focused view +	if (mPreviouslyFocusedView.get()) +	{ +		gFocusMgr.setKeyboardFocus(mPreviouslyFocusedView.get()); +	}  }  BOOL LLToastAlertPanel::hasTitleBar() const diff --git a/indra/newview/lltoastalertpanel.h b/indra/newview/lltoastalertpanel.h index 7b157f19bb..d1be5e018e 100644 --- a/indra/newview/lltoastalertpanel.h +++ b/indra/newview/lltoastalertpanel.h @@ -113,6 +113,7 @@ private:  	LLFrameTimer	mDefaultBtnTimer;  	// For Dialogs that take a line as text as input:  	LLLineEditor* mLineEditor; +	LLHandle<LLView>	mPreviouslyFocusedView;  }; | 
