summaryrefslogtreecommitdiff
path: root/indra/newview/llnotificationofferhandler.cpp
diff options
context:
space:
mode:
authorTofu Linden <tofu.linden@lindenlab.com>2009-11-23 15:53:49 +0000
committerTofu Linden <tofu.linden@lindenlab.com>2009-11-23 15:53:49 +0000
commita434e32097ca59c19a7c38aeae6b1991272569df (patch)
tree34237f1926aee21a80f977e5b363a7c0a8592b21 /indra/newview/llnotificationofferhandler.cpp
parent21723e85677c69c4f78946d971bbf0e0c9cd37e5 (diff)
parent1b07c1d7fb5b6d3ce15083bc3dbb65a3f0ac8006 (diff)
merge.
Diffstat (limited to 'indra/newview/llnotificationofferhandler.cpp')
-rw-r--r--indra/newview/llnotificationofferhandler.cpp26
1 files changed, 18 insertions, 8 deletions
diff --git a/indra/newview/llnotificationofferhandler.cpp b/indra/newview/llnotificationofferhandler.cpp
index 598d021703..0a595765a9 100644
--- a/indra/newview/llnotificationofferhandler.cpp
+++ b/indra/newview/llnotificationofferhandler.cpp
@@ -92,16 +92,26 @@ bool LLOfferHandler::processNotification(const LLSD& notify)
if(notify["sigtype"].asString() == "add" || notify["sigtype"].asString() == "change")
{
// add message to IM
- LLUUID session_id = LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, notification->getPayload()["from_id"]);
- if (!LLIMMgr::instance().hasSession(session_id))
+ const std::string
+ name =
+ notification->getSubstitutions().has("NAME") ? notification->getSubstitutions()["NAME"]
+ : notification->getSubstitutions()["[NAME]"];
+
+ // don't create IM session with objects
+ if (notification->getName() != "ObjectGiveItem"
+ && notification->getName() != "ObjectGiveItemUnknownUser")
{
- session_id = LLIMMgr::instance().addSession(
- notification->getSubstitutions()["OBJECTFROMNAME"], IM_NOTHING_SPECIAL,
- notification->getPayload()["from_id"]);
+ LLUUID from_id = notification->getPayload()["from_id"];
+ LLUUID session_id = LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL,
+ from_id);
+ if (!LLIMMgr::instance().hasSession(session_id))
+ {
+ session_id = LLIMMgr::instance().addSession(name,
+ IM_NOTHING_SPECIAL, from_id);
+ }
+ LLIMMgr::instance().addMessage(session_id, LLUUID(), name,
+ notification->getMessage());
}
- LLIMMgr::instance().addMessage(session_id, LLUUID(),
- notification->getSubstitutions()["OBJECTFROMNAME"],
- notification->getMessage());
LLToastNotifyPanel* notify_box = new LLToastNotifyPanel(notification);