diff options
author | Denis Serdjuk <dserduk@productengine.com> | 2010-01-15 18:47:24 +0200 |
---|---|---|
committer | Denis Serdjuk <dserduk@productengine.com> | 2010-01-15 18:47:24 +0200 |
commit | 095041154995bdfd8f82ebd4df88df4f84115218 (patch) | |
tree | 731f3d62da8698746391923c5521c1bea6291ee3 /indra/newview/llviewermessage.cpp | |
parent | 6e67ac5e02e0e22433f679eff29a5426d3ace1be (diff) |
EXT-4160 Gesture floater spam when creating new account
Cause:
There is a global observer ( LLOpenTaskOffer ) which observes creation of new inventory items and open appropriated preview UI for them. Looks like simulator () sends a message for all active gestures, when user is logged in first time.
Solution:
Displaying of the preview gesture floater has been removed from global scope. Also I have added new observer to handle opening gestures as attachment from group notice to avoid regression problems.
--HG--
branch : product-engine
Diffstat (limited to 'indra/newview/llviewermessage.cpp')
-rw-r--r-- | indra/newview/llviewermessage.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index bcfd1ea0ad..4999ac000e 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -711,6 +711,18 @@ protected: } }; +class LLOpenTaskGroupOffer : public LLInventoryAddedObserver +{ +protected: + /*virtual*/ void done() + { + open_inventory_offer(mAdded, "group_offer"); + mAdded.clear(); + gInventory.removeObserver(this); + delete this; + } +}; + //one global instance to bind them LLOpenTaskOffer* gNewInventoryObserver=NULL; @@ -929,9 +941,6 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f case LLAssetType::AT_ANIMATION: LLFloaterReg::showInstance("preview_anim", LLSD(item_id), take_focus); break; - case LLAssetType::AT_GESTURE: - LLFloaterReg::showInstance("preview_gesture", LLSD(item_id), take_focus); - break; case LLAssetType::AT_SCRIPT: LLFloaterReg::showInstance("preview_script", LLSD(item_id), take_focus); break; @@ -1146,6 +1155,7 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD& } break; case IM_GROUP_NOTICE: + opener = new LLOpenTaskGroupOffer; send_auto_receive_response(); break; case IM_TASK_INVENTORY_OFFERED: |