summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llui/llfloater.cpp1
-rw-r--r--indra/llui/llmenugl.cpp5
-rw-r--r--indra/llui/lltextbase.cpp2
-rw-r--r--indra/newview/llprogressview.cpp26
-rw-r--r--indra/newview/llprogressview.h2
-rw-r--r--indra/newview/llviewermenu.cpp8
-rw-r--r--indra/newview/llviewerwindow.cpp6
-rw-r--r--indra/newview/skins/default/xui/en/main_view.xml18
8 files changed, 46 insertions, 22 deletions
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 4cb336f7ea..ab14c08948 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -1354,7 +1354,6 @@ void LLFloater::bringToFront( S32 x, S32 y )
// virtual
void LLFloater::setVisibleAndFrontmost(BOOL take_focus)
{
- LLUI::clearPopups();
setVisible(TRUE);
setFrontmost(take_focus);
}
diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp
index 0d56c5ed31..fb4a9d032d 100644
--- a/indra/llui/llmenugl.cpp
+++ b/indra/llui/llmenugl.cpp
@@ -3455,7 +3455,7 @@ LLView* const LLMenuHolderGL::getVisibleMenu() const
for ( child_list_const_iter_t child_it = getChildList()->begin(); child_it != getChildList()->end(); ++child_it)
{
LLView* viewp = *child_it;
- if (viewp->getVisible() && dynamic_cast<LLMenuBarGL*>(viewp) == NULL)
+ if (viewp->getVisible() && dynamic_cast<LLMenuGL*>(viewp) != NULL)
{
return viewp;
}
@@ -3478,8 +3478,7 @@ BOOL LLMenuHolderGL::hideMenus()
for ( child_list_const_iter_t child_it = getChildList()->begin(); child_it != getChildList()->end(); ++child_it)
{
LLView* viewp = *child_it;
- // clicks off of menu do not hide menu bar
- if (dynamic_cast<LLMenuBarGL*>(viewp) == NULL && viewp->getVisible())
+ if (dynamic_cast<LLMenuGL*>(viewp) != NULL && viewp->getVisible())
{
viewp->setVisible(FALSE);
}
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 851fb966ec..633135382e 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -246,7 +246,7 @@ LLTextBase::~LLTextBase()
{
// Menu, like any other LLUICtrl, is deleted by its parent - gMenuHolder
- clearSegments();
+ mSegments.clear();
}
void LLTextBase::initFromParams(const LLTextBase::Params& p)
diff --git a/indra/newview/llprogressview.cpp b/indra/newview/llprogressview.cpp
index 120b584cd9..9b5e38d0aa 100644
--- a/indra/newview/llprogressview.cpp
+++ b/indra/newview/llprogressview.cpp
@@ -68,15 +68,16 @@ const F32 TOTAL_LOGIN_TIME = 10.f; // seconds, wild guess at time from GL contex
S32 gLastStartAnimationFrame = 0; // human-style indexing, first image = 1
const S32 ANIMATION_FRAMES = 1; //13;
+static LLRegisterPanelClassWrapper<LLProgressView> r("progress_view");
+
+
// XUI: Translate
-LLProgressView::LLProgressView(const LLRect &rect)
+LLProgressView::LLProgressView()
: LLPanel(),
mPercentDone( 0.f ),
mMouseDownInActiveArea( false ),
mUpdateEvents("LLProgressView")
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_progress.xml");
- reshape(rect.getWidth(), rect.getHeight());
mUpdateEvents.listen("self", boost::bind(&LLProgressView::handleUpdate, this, _1));
}
@@ -92,6 +93,9 @@ BOOL LLProgressView::postBuild()
getChild<LLTextBox>("message_text")->setClickedCallback(onClickMessage, this);
+ // hidden initially, until we need it
+ LLPanel::setVisible(FALSE);
+
sInstance = this;
return TRUE;
}
@@ -126,19 +130,23 @@ BOOL LLProgressView::handleKeyHere(KEY key, MASK mask)
void LLProgressView::setVisible(BOOL visible)
{
+ // hiding progress view
if (getVisible() && !visible)
{
-
mFadeTimer.start();
+ // hiding progress view, so show menu bars
+ LLUI::getRootView()->getChildView("menu_bar_holder")->setVisible(TRUE);
}
+ // showing progress view
else if (!getVisible() && visible)
{
- gViewerWindow->addPopup(this);
-
+ // showing progress view, so hide menu bars
+ LLUI::getRootView()->getChildView("menu_bar_holder")->setVisible(FALSE);
+
setFocus(TRUE);
mFadeTimer.stop();
mProgressTimer.start();
- LLPanel::setVisible(visible);
+ LLPanel::setVisible(TRUE);
}
}
@@ -148,7 +156,7 @@ void LLProgressView::draw()
static LLTimer timer;
// Paint bitmap if we've got one
- glPushMatrix();
+ glPushMatrix();
if (gStartTexture)
{
LLGLSUIDefault gls_ui;
@@ -189,7 +197,7 @@ void LLProgressView::draw()
// Fade is complete, release focus
gFocusMgr.releaseFocusIfNeeded( this );
LLPanel::setVisible(FALSE);
- gViewerWindow->removePopup(this);
+ mFadeTimer.stop();
gStartTexture = NULL;
}
diff --git a/indra/newview/llprogressview.h b/indra/newview/llprogressview.h
index 6853674d88..374b14be83 100644
--- a/indra/newview/llprogressview.h
+++ b/indra/newview/llprogressview.h
@@ -44,7 +44,7 @@ class LLProgressBar;
class LLProgressView : public LLPanel
{
public:
- LLProgressView(const LLRect& rect);
+ LLProgressView();
virtual ~LLProgressView();
BOOL postBuild();
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index bc3b8ac9d6..e13f423941 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -434,7 +434,8 @@ void init_menus()
gMenuBarView->setRect(LLRect(0, top, 0, top - MENU_BAR_HEIGHT));
gMenuBarView->setBackgroundColor( color );
- gMenuHolder->addChild(gMenuBarView);
+ LLView* menu_bar_holder = gViewerWindow->getRootView()->getChildView("menu_bar_holder");
+ menu_bar_holder->addChild(gMenuBarView);
gViewerWindow->setMenuBackgroundColor(false,
LLViewerLogin::getInstance()->isInProductionGrid());
@@ -469,9 +470,10 @@ void init_menus()
gLoginMenuBarView = LLUICtrlFactory::getInstance()->createFromFile<LLMenuBarGL>("menu_login.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
gLoginMenuBarView->arrangeAndClear();
LLRect menuBarRect = gLoginMenuBarView->getRect();
- gLoginMenuBarView->setRect(LLRect(menuBarRect.mLeft, menuBarRect.mTop, gViewerWindow->getRootView()->getRect().getWidth() - menuBarRect.mLeft, menuBarRect.mBottom));
+ menuBarRect.setLeftTopAndSize(0, menu_bar_holder->getRect().getHeight(), menuBarRect.getWidth(), menuBarRect.getHeight());
+ gLoginMenuBarView->setRect(menuBarRect);
gLoginMenuBarView->setBackgroundColor( color );
- gMenuHolder->addChild(gLoginMenuBarView);
+ menu_bar_holder->addChild(gLoginMenuBarView);
// tooltips are on top of EVERYTHING, including menus
gViewerWindow->getRootView()->sendChildToFront(gToolTipView);
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index d0a1a31ebd..144ec2376e 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -1351,7 +1351,8 @@ LLViewerWindow::LLViewerWindow(
mStatesDirty(false),
mIsFullscreenChecked(false),
mCurrResolutionIndex(0),
- mViewerWindowListener(new LLViewerWindowListener(this))
+ mViewerWindowListener(new LLViewerWindowListener(this)),
+ mProgressView(NULL)
{
LLNotificationChannel::buildChannel("VW_alerts", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "alert"));
LLNotificationChannel::buildChannel("VW_alertmodal", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "alertmodal"));
@@ -1588,8 +1589,7 @@ void LLViewerWindow::initBase()
gToolTipView = getRootView()->getChild<LLToolTipView>("tooltip view");
// Add the progress bar view (startup view), which overrides everything
- mProgressView = new LLProgressView(full_window);
- getRootView()->addChild(mProgressView);
+ mProgressView = getRootView()->getChild<LLProgressView>("progress_view");
setShowProgress(FALSE);
setProgressCancelButtonVisible(FALSE);
diff --git a/indra/newview/skins/default/xui/en/main_view.xml b/indra/newview/skins/default/xui/en/main_view.xml
index 85853f39bb..1ace760816 100644
--- a/indra/newview/skins/default/xui/en/main_view.xml
+++ b/indra/newview/skins/default/xui/en/main_view.xml
@@ -143,12 +143,19 @@
<panel mouse_opaque="false"
follows="left|right|top"
name="status_bar_container"
- tab_stop="false"
+ tab_stop="false"
height="19"
left="0"
top="0"
width="1024"
visible="false"/>
+ <view mouse_opaque="false"
+ follows="all"
+ name="menu_bar_holder"
+ left="0"
+ top="0"
+ width="1024"
+ height="768"/>
<notify_box_view top="0"
follows="all"
height="768"
@@ -159,6 +166,15 @@
<panel top="0"
follows="all"
height="768"
+ mouse_opaque="true"
+ name="progress_view"
+ filename="panel_progress.xml"
+ class="progress_view"
+ width="1024"
+ visible="false"/>
+ <panel top="0"
+ follows="all"
+ height="768"
mouse_opaque="false"
name="popup_holder"
class="popup_holder"