diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp index f56cb2eee7248cbd1ac660645d0d52e1d3fff6a3..c3dd4ae647d9436b85fbde6d9d8b2927ea24373f 100644 --- a/indra/llui/lldockablefloater.cpp +++ b/indra/llui/lldockablefloater.cpp @@ -127,6 +127,10 @@ void LLDockableFloater::setVisible(BOOL visible) mDockControl.get()->repositionDockable(); } + if (visible) + { + LLFloater::setFrontmost(TRUE); + } LLFloater::setVisible(visible); } diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp index 2fb6550107a40c19ac772d83f4428dbe5b6e7793..eada3879456eddb085ae715e8e80867ef8b6fa72 100644 --- a/indra/newview/llsyswellwindow.cpp +++ b/indra/newview/llsyswellwindow.cpp @@ -90,9 +90,9 @@ BOOL LLSysWellWindow::postBuild() void LLSysWellWindow::setMinimized(BOOL minimize) { // we don't show empty Message Well window - if (!minimize) + if (!minimize && isWindowEmpty()) { - setVisible(!isWindowEmpty()); + return; } LLDockableFloater::setMinimized(minimize); @@ -268,8 +268,11 @@ void LLSysWellWindow::toggleWindow() { setVisible(FALSE); } - //set window in foreground - setFocus(getVisible()); + else if(!isDocked()) + { + // bring to front undocked floater + setVisible(TRUE); + } } //--------------------------------------------------------------------------------- diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp index 903df21e785044ceb557eba7c05fd6332156737c..513439daeb9850c6126bf3aa392d4356665b2eac 100644 --- a/indra/newview/lltoast.cpp +++ b/indra/newview/lltoast.cpp @@ -225,6 +225,7 @@ void LLToast::setVisible(BOOL show) { mTimer.start(); } + LLModalDialog::setFrontmost(TRUE); } LLPanel::setVisible(show); if(mPanel)