summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llchiclet.cpp19
-rw-r--r--indra/newview/llchiclet.h2
2 files changed, 19 insertions, 2 deletions
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index 17ef1f41a4..e6f56d89f7 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -477,7 +477,6 @@ void LLIMChiclet::setShowSpeaker(bool show)
{
mShowSpeaker = show;
toggleSpeakerControl();
- onChicletSizeChanged();
}
}
@@ -502,7 +501,6 @@ void LLIMChiclet::setShowCounter(bool show)
{
LLChiclet::setShowCounter(show);
toggleCounterControl();
- onChicletSizeChanged();
}
}
@@ -527,6 +525,8 @@ void LLIMChiclet::setRequiredWidth()
}
reshape(required_width, getRect().getHeight());
+
+ onChicletSizeChanged();
}
void LLIMChiclet::toggleSpeakerControl()
@@ -567,6 +567,7 @@ void LLIMChiclet::setShowNewMessagesIcon(bool show)
{
mNewMessagesIcon->setVisible(show);
}
+ setRequiredWidth();
}
bool LLIMChiclet::getShowNewMessagesIcon()
@@ -1462,6 +1463,20 @@ void LLChicletPanel::reshape(S32 width, S32 height, BOOL called_from_parent )
}
+S32 LLChicletPanel::notifyParent(const LLSD& info)
+{
+ if(info.has("notification"))
+ {
+ std::string str_notification = info["notification"];
+ if(str_notification == "size_changes")
+ {
+ arrange();
+ return 1;
+ }
+ }
+ return LLPanel::notifyParent(info);
+}
+
void LLChicletPanel::arrange()
{
if(mChicletList.empty())
diff --git a/indra/newview/llchiclet.h b/indra/newview/llchiclet.h
index 2ab6abfb5b..511b85b0b6 100644
--- a/indra/newview/llchiclet.h
+++ b/indra/newview/llchiclet.h
@@ -1021,6 +1021,8 @@ public:
S32 getTotalUnreadIMCount();
+ S32 notifyParent(const LLSD& info);
+
protected:
LLChicletPanel(const Params&p);
friend class LLUICtrlFactory;