summaryrefslogtreecommitdiff
path: root/indra/newview/llscriptfloater.cpp
diff options
context:
space:
mode:
authorYchebotarev ProductEngine <ychebotarev@productengine.com>2010-01-19 17:13:21 +0200
committerYchebotarev ProductEngine <ychebotarev@productengine.com>2010-01-19 17:13:21 +0200
commit82de841c52357642d30b6d89b11da079f9c0f5d1 (patch)
tree8ed3ec82392b6afd2ddf2023035fdfa45cd74c0b /indra/newview/llscriptfloater.cpp
parent4610e911c959cdd21728822ae80b9e717ccd3012 (diff)
parent00c05a885fb1cbee967065798f57d74bf47f2478 (diff)
merge
--HG-- branch : product-engine
Diffstat (limited to 'indra/newview/llscriptfloater.cpp')
-rw-r--r--indra/newview/llscriptfloater.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/indra/newview/llscriptfloater.cpp b/indra/newview/llscriptfloater.cpp
index cf62d47362..0d9cf06bc3 100644
--- a/indra/newview/llscriptfloater.cpp
+++ b/indra/newview/llscriptfloater.cpp
@@ -72,6 +72,9 @@ LLScriptFloater::LLScriptFloater(const LLSD& key)
bool LLScriptFloater::toggle(const LLUUID& object_id)
{
+ // Force chiclet toggle on here because first onFocusReceived() will not toggle it on.
+ LLBottomTray::getInstance()->getChicletPanel()->setChicletToggleState(object_id, true);
+
LLUUID notification_id = LLScriptFloaterManager::getInstance()->findNotificationId(object_id);
LLScriptFloater* floater = LLFloaterReg::findTypedInstance<LLScriptFloater>("script_floater", notification_id);
@@ -180,6 +183,15 @@ void LLScriptFloater::setVisible(BOOL visible)
LLDockableFloater::setVisible(visible);
hideToastsIfNeeded();
+
+ if(!visible)
+ {
+ LLIMChiclet* chiclet = LLBottomTray::getInstance()->getChicletPanel()->findChiclet<LLIMChiclet>(getObjectId());
+ if(chiclet)
+ {
+ chiclet->setToggleState(false);
+ }
+ }
}
void LLScriptFloater::onMouseDown()
@@ -199,6 +211,20 @@ void LLScriptFloater::onMouseDown()
}
}
+void LLScriptFloater::onFocusLost()
+{
+ LLBottomTray::getInstance()->getChicletPanel()->setChicletToggleState(getObjectId(), false);
+}
+
+void LLScriptFloater::onFocusReceived()
+{
+ // first focus will be received before setObjectId() call - don't toggle chiclet
+ if(getObjectId().notNull())
+ {
+ LLBottomTray::getInstance()->getChicletPanel()->setChicletToggleState(getObjectId(), true);
+ }
+}
+
void LLScriptFloater::hideToastsIfNeeded()
{
using namespace LLNotificationsUI;