diff options
| -rw-r--r-- | indra/llui/llmodaldialog.cpp | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/indra/llui/llmodaldialog.cpp b/indra/llui/llmodaldialog.cpp index 5cfa8ea973..50fc6913a9 100644 --- a/indra/llui/llmodaldialog.cpp +++ b/indra/llui/llmodaldialog.cpp @@ -100,7 +100,10 @@ void LLModalDialog::onOpen(const LLSD& key)  		if (!sModalStack.empty())  		{  			LLModalDialog* front = sModalStack.front(); -			front->setVisible(FALSE); +            if (front != this) +            { +                front->setVisible(FALSE); +            }  		}  		// This is a modal dialog.  It sucks up all mouse and keyboard operations. @@ -108,7 +111,12 @@ void LLModalDialog::onOpen(const LLSD& key)  		LLUI::getInstance()->addPopup(this);  		setFocus(TRUE); -		sModalStack.push_front( this ); +        std::list<LLModalDialog*>::iterator iter = std::find(sModalStack.begin(), sModalStack.end(), this); +        if (iter == sModalStack.end()) +        { +            sModalStack.push_front(this); +        } +        // else act like it is a 'bring to front'  	}  } | 
