summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
authorVadim ProductEngine <vsavchuk@productengine.com>2010-12-01 15:46:57 +0200
committerVadim ProductEngine <vsavchuk@productengine.com>2010-12-01 15:46:57 +0200
commit3c4cf5a309612d2a999453b282cad0aab7764083 (patch)
treebfca12ff66e120fad7b687165648565c3f066f2b /indra/llui
parentd3dbdf6f51ae9cada4a5a450387c0688ccbe07a1 (diff)
STORM-677 ADDITIONAL_FIX Force textures inside texture picker to be 100% opaque while the control is in a focused floater.
Besides, made LLFloater handle opacity more like other controls do.
Diffstat (limited to 'indra/llui')
-rw-r--r--indra/llui/llfloater.cpp33
-rw-r--r--indra/llui/llfloater.h5
2 files changed, 19 insertions, 19 deletions
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index da5dad6b82..7727e154da 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -1189,7 +1189,7 @@ void LLFloater::setFocus( BOOL b )
last_focus->setFocus(TRUE);
}
}
- updateChildrenTransparency(this, b ? TT_ACTIVE : TT_INACTIVE);
+ updateTransparency(this, b ? TT_ACTIVE : TT_INACTIVE);
}
// virtual
@@ -1649,7 +1649,7 @@ void LLFloater::onClickCloseBtn()
// virtual
void LLFloater::draw()
{
- mCurrentTransparency = hasFocus() ? sActiveControlTransparency : sInactiveControlTransparency;
+ const F32 alpha = getCurrentTransparency();
// draw background
if( isBackgroundVisible() )
@@ -1681,12 +1681,12 @@ void LLFloater::draw()
if (image)
{
// We're using images for this floater's backgrounds
- image->draw(getLocalRect(), overlay_color % mCurrentTransparency);
+ image->draw(getLocalRect(), overlay_color % alpha);
}
else
{
// We're not using images, use old-school flat colors
- gl_rect_2d( left, top, right, bottom, color % mCurrentTransparency );
+ gl_rect_2d( left, top, right, bottom, color % alpha );
// draw highlight on title bar to indicate focus. RDW
if(hasFocus()
@@ -1698,7 +1698,7 @@ void LLFloater::draw()
const LLFontGL* font = LLFontGL::getFontSansSerif();
LLRect r = getRect();
gl_rect_2d_offset_local(0, r.getHeight(), r.getWidth(), r.getHeight() - (S32)font->getLineHeight() - 1,
- titlebar_focus_color % mCurrentTransparency, 0, TRUE);
+ titlebar_focus_color % alpha, 0, TRUE);
}
}
}
@@ -1764,29 +1764,30 @@ void LLFloater::drawShadow(LLPanel* panel)
shadow_color.mV[VALPHA] *= 0.5f;
}
gl_drop_shadow(left, top, right, bottom,
- shadow_color % mCurrentTransparency,
+ shadow_color % getCurrentTransparency(),
llround(shadow_offset));
}
-void LLFloater::updateChildrenTransparency(LLView* ctrl, ETypeTransparency transparency_type)
+void LLFloater::updateTransparency(LLView* view, ETypeTransparency transparency_type)
{
- child_list_t children = *ctrl->getChildList();
+ child_list_t children = *view->getChildList();
child_list_t::iterator it = children.begin();
+ LLUICtrl* ctrl = dynamic_cast<LLUICtrl*>(view);
+ if (ctrl)
+ {
+ ctrl->setTransparencyType(transparency_type);
+ }
+
for(; it != children.end(); ++it)
{
- LLUICtrl* ui_ctrl = dynamic_cast<LLUICtrl*>(*it);
- if (ui_ctrl)
- {
- ui_ctrl->setTransparencyType(transparency_type);
- }
- updateChildrenTransparency(*it, transparency_type);
+ updateTransparency(*it, transparency_type);
}
}
-void LLFloater::updateChildrenTransparency(ETypeTransparency transparency_type)
+void LLFloater::updateTransparency(ETypeTransparency transparency_type)
{
- updateChildrenTransparency(this, transparency_type);
+ updateTransparency(this, transparency_type);
}
void LLFloater::setCanMinimize(BOOL can_minimize)
diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h
index 2ec233f454..bb96272d02 100644
--- a/indra/llui/llfloater.h
+++ b/indra/llui/llfloater.h
@@ -285,7 +285,7 @@ public:
static void setFloaterHost(LLMultiFloater* hostp) {sHostp = hostp; }
static LLMultiFloater* getFloaterHost() {return sHostp; }
- void updateChildrenTransparency(ETypeTransparency transparency_type);
+ void updateTransparency(ETypeTransparency transparency_type);
protected:
@@ -345,7 +345,7 @@ private:
static void updateActiveFloaterTransparency();
static void updateInactiveFloaterTransparency();
- void updateChildrenTransparency(LLView* ctrl, ETypeTransparency transparency_type);
+ void updateTransparency(LLView* view, ETypeTransparency transparency_type);
public:
// Called when floater is opened, passes mKey
@@ -363,7 +363,6 @@ protected:
std::string mVisibilityControl;
std::string mDocStateControl;
LLSD mKey; // Key used for retrieving instances; set (for now) by LLFLoaterReg
- F32 mCurrentTransparency;
LLDragHandle* mDragHandle;
LLResizeBar* mResizeBar[4];