diff options
| author | Andrey Lihatskiy <alihatskiy@productengine.com> | 2023-07-17 23:17:29 +0300 |
|---|---|---|
| committer | Andrey Lihatskiy <alihatskiy@productengine.com> | 2023-07-17 23:17:29 +0300 |
| commit | 07ff9a5d67cefdae1bc112b19947f7ba173c9dbb (patch) | |
| tree | 97299a554b4a4ea2453d675abc8a2d40595566d3 /indra/llui/lliconctrl.cpp | |
| parent | 834a8eeddeda035551ed4071273c26e806946147 (diff) | |
| parent | ec4135da63a3f3877222fba4ecb59b15650371fe (diff) | |
Merge branch 'main' into DRTVWR-582-maint-U
# Conflicts:
# doc/contributions.txt
# indra/llcommon/llerrorthread.cpp
Diffstat (limited to 'indra/llui/lliconctrl.cpp')
| -rw-r--r-- | indra/llui/lliconctrl.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/indra/llui/lliconctrl.cpp b/indra/llui/lliconctrl.cpp index e01aba402e..2791377a5e 100644 --- a/indra/llui/lliconctrl.cpp +++ b/indra/llui/lliconctrl.cpp @@ -37,6 +37,8 @@ #include "lluiimage.h" #include "llwindow.h" +#include "llgltexture.h" + static LLDefaultChildRegistry::Register<LLIconCtrl> r("icon"); LLIconCtrl::Params::Params() @@ -94,6 +96,22 @@ BOOL LLIconCtrl::handleHover(S32 x, S32 y, MASK mask) return LLUICtrl::handleHover(x, y, mask); } +void LLIconCtrl::onVisibilityChange(BOOL new_visibility) +{ + LLUICtrl::onVisibilityChange(new_visibility); + if (mPriority == LLGLTexture::BOOST_ICON) + { + if (new_visibility) + { + loadImage(getValue(), mPriority); + } + else + { + mImagep = nullptr; + } + } +} + // virtual // value might be a string or a UUID void LLIconCtrl::setValue(const LLSD& value) @@ -110,6 +128,14 @@ void LLIconCtrl::setValue(const LLSD& value, S32 priority) tvalue = LLSD(LLUUID(value.asString())); } LLUICtrl::setValue(tvalue); + + loadImage(tvalue, priority); +} + +void LLIconCtrl::loadImage(const LLSD& tvalue, S32 priority) +{ + if(mPriority == LLGLTexture::BOOST_ICON && !getVisible()) return; + if (tvalue.isUUID()) { mImagep = LLUI::getUIImageByID(tvalue.asUUID(), priority); |
