Merge branch 'curlthreading2' into curlthreading3
This commit is contained in:
@@ -1063,11 +1063,13 @@ void LLButton::setImageOverlay(const std::string& image_name, LLFontGL::HAlign a
|
||||
if (image_name.empty())
|
||||
{
|
||||
mImageOverlay = NULL;
|
||||
mImageOverlaySelectedColor = LLColor4::white;
|
||||
}
|
||||
else
|
||||
{
|
||||
mImageOverlay = LLUI::getUIImage(image_name);
|
||||
mImageOverlayAlignment = alignment;
|
||||
mImageOverlaySelectedColor = color;
|
||||
mImageOverlayColor = color;
|
||||
}
|
||||
}
|
||||
@@ -1077,11 +1079,13 @@ void LLButton::setImageOverlay(const LLUUID& image_id, LLFontGL::HAlign alignmen
|
||||
if (image_id.isNull())
|
||||
{
|
||||
mImageOverlay = NULL;
|
||||
mImageOverlaySelectedColor = LLColor4::white;
|
||||
}
|
||||
else
|
||||
{
|
||||
mImageOverlay = LLUI::getUIImageByID(image_id);
|
||||
mImageOverlayAlignment = alignment;
|
||||
mImageOverlaySelectedColor = color;
|
||||
mImageOverlayColor = color;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,6 +69,12 @@ LLModalDialog::~LLModalDialog()
|
||||
{
|
||||
gFocusMgr.unlockFocus();
|
||||
}
|
||||
|
||||
std::list<LLModalDialog*>::iterator iter = std::find(sModalStack.begin(), sModalStack.end(), this);
|
||||
if (iter != sModalStack.end())
|
||||
{
|
||||
llerrs << "Attempt to delete dialog while still in sModalStack!" << llendl;
|
||||
}
|
||||
}
|
||||
|
||||
// virtual
|
||||
@@ -91,6 +97,8 @@ void LLModalDialog::startModal()
|
||||
{
|
||||
if (mModal)
|
||||
{
|
||||
|
||||
|
||||
// If Modal, Hide the active modal dialog
|
||||
if (!sModalStack.empty())
|
||||
{
|
||||
@@ -103,6 +111,14 @@ void LLModalDialog::startModal()
|
||||
gFocusMgr.setTopCtrl( this );
|
||||
setFocus(TRUE);
|
||||
|
||||
std::list<LLModalDialog*>::iterator iter = std::find(sModalStack.begin(), sModalStack.end(), this);
|
||||
if (iter != sModalStack.end())
|
||||
{
|
||||
sModalStack.erase(iter);
|
||||
llwarns << "Dialog already on modal stack" << llendl;
|
||||
//TODO: incvestigate in which specific cases it happens, cause that's not good! -SG
|
||||
}
|
||||
|
||||
sModalStack.push_front( this );
|
||||
}
|
||||
|
||||
@@ -314,5 +330,16 @@ void LLModalDialog::onAppFocusGained()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void LLModalDialog::shutdownModals()
|
||||
{
|
||||
// This method is only for use during app shutdown. ~LLModalDialog()
|
||||
// checks sModalStack, and if the dialog instance is still there, it
|
||||
// crumps with "Attempt to delete dialog while still in sModalStack!" But
|
||||
// at app shutdown, all bets are off. If the user asks to shut down the
|
||||
// app, we shouldn't have to care WHAT's open. Put differently, if a modal
|
||||
// dialog is so crucial that we can't let the user terminate until s/he
|
||||
// addresses it, we should reject a termination request. The current state
|
||||
// of affairs is that we accept it, but then produce an llerrs popup that
|
||||
// simply makes our software look unreliable.
|
||||
sModalStack.clear();
|
||||
}
|
||||
|
||||
@@ -74,7 +74,8 @@ public:
|
||||
static void onAppFocusGained();
|
||||
|
||||
static S32 activeCount() { return sModalStack.size(); }
|
||||
|
||||
static void shutdownModals();
|
||||
|
||||
protected:
|
||||
void centerOnScreen();
|
||||
|
||||
|
||||
@@ -88,6 +88,7 @@ LLMultiFloater::LLMultiFloater(
|
||||
{
|
||||
mTabContainer->setRightTabBtnOffset(RESIZE_HANDLE_WIDTH);
|
||||
}
|
||||
mTabContainer->setCommitCallback(boost::bind(&LLMultiFloater::onTabSelected, this));
|
||||
|
||||
addChild(mTabContainer);
|
||||
}
|
||||
@@ -114,6 +115,7 @@ LLMultiFloater::LLMultiFloater(
|
||||
{
|
||||
mTabContainer->setRightTabBtnOffset(RESIZE_HANDLE_WIDTH);
|
||||
}
|
||||
mTabContainer->setCommitCallback(boost::bind(&LLMultiFloater::onTabSelected, this));
|
||||
|
||||
addChild(mTabContainer);
|
||||
|
||||
@@ -482,7 +484,7 @@ void LLMultiFloater::setCanResize(BOOL can_resize)
|
||||
}
|
||||
}
|
||||
|
||||
BOOL LLMultiFloater::postBuild()
|
||||
/*BOOL LLMultiFloater::postBuild()
|
||||
{
|
||||
// remember any original xml minimum size
|
||||
getResizeLimits(&mOrigMinWidth, &mOrigMinHeight);
|
||||
@@ -501,7 +503,7 @@ BOOL LLMultiFloater::postBuild()
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
}*/
|
||||
|
||||
void LLMultiFloater::updateResizeLimits()
|
||||
{
|
||||
|
||||
@@ -45,7 +45,6 @@ public:
|
||||
LLMultiFloater(const std::string& name, const std::string& rect_control, LLTabContainer::TabPosition tab_pos = LLTabContainer::TOP, BOOL auto_resize = TRUE);
|
||||
virtual ~LLMultiFloater() {};
|
||||
|
||||
virtual BOOL postBuild();
|
||||
virtual LLXMLNodePtr getXML(bool save_children = true) const;
|
||||
/*virtual*/ void open(); /* Flawfinder: ignore */
|
||||
/*virtual*/ void onClose(bool app_quitting);
|
||||
|
||||
Reference in New Issue
Block a user