diff options
author | NiranV <NiranV.Dean@googlemail.com> | 2014-08-26 21:04:54 +0200 |
---|---|---|
committer | NiranV <NiranV.Dean@googlemail.com> | 2014-08-26 21:04:54 +0200 |
commit | ed29df03092092247d2743fe1c0ec9e501c4da28 (patch) | |
tree | bcbcc69436f6545eb3de22616189525c2f44ccc8 /indra/newview/llfloaterfacebook.cpp | |
parent | 0a134e749d01b711ca38a91044efb787cd815701 (diff) |
STORM-2073: Fixed: Double post when clicking "Post" while not logged in. Makes the previous double post for "Connect" obselete.
Diffstat (limited to 'indra/newview/llfloaterfacebook.cpp')
-rw-r--r-- | indra/newview/llfloaterfacebook.cpp | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/indra/newview/llfloaterfacebook.cpp b/indra/newview/llfloaterfacebook.cpp index 33422fb5fd..6888e076aa 100644 --- a/indra/newview/llfloaterfacebook.cpp +++ b/indra/newview/llfloaterfacebook.cpp @@ -157,7 +157,6 @@ void LLFacebookStatusPanel::onSend() LLEventPumps::instance().obtain("FacebookConnectState").stopListening("LLFacebookStatusPanel"); // just in case it is already listening LLEventPumps::instance().obtain("FacebookConnectState").listen("LLFacebookStatusPanel", boost::bind(&LLFacebookStatusPanel::onFacebookConnectStateChange, this, _1)); - pressedConnect = FALSE; // Connect to Facebook if necessary and then post if (LLFacebookConnect::instance().isConnected()) { @@ -171,6 +170,23 @@ void LLFacebookStatusPanel::onSend() bool LLFacebookStatusPanel::onFacebookConnectStateChange(const LLSD& data) { + switch (data.get("enum").asInteger()) + { + case LLFacebookConnect::FB_CONNECTED: + sendStatus(); + break; + + case LLFacebookConnect::FB_POSTED: + LLEventPumps::instance().obtain("FacebookConnectState").stopListening("LLFacebookStatusPanel"); + clearAndClose(); + break; + } + + return false; +} + +bool LLFacebookStatusPanel::onFacebookConnectAccountStateChange(const LLSD& data) +{ if(LLFacebookConnect::instance().isConnected()) { //In process of disconnecting so leave the layout as is @@ -184,19 +200,6 @@ bool LLFacebookStatusPanel::onFacebookConnectStateChange(const LLSD& data) showDisconnectedLayout(); } - switch (data.get("enum").asInteger()) - { - case LLFacebookConnect::FB_CONNECTED: - if(!pressedConnect) - sendStatus(); - break; - - case LLFacebookConnect::FB_POSTED: - LLEventPumps::instance().obtain("FacebookConnectState").stopListening("LLFacebookStatusPanel"); - clearAndClose(); - break; - } - return false; } @@ -214,7 +217,7 @@ void LLFacebookStatusPanel::onVisibilityChange(BOOL visible) if(visible) { LLEventPumps::instance().obtain("FacebookConnectState").stopListening("LLFacebookAccountPanel"); - LLEventPumps::instance().obtain("FacebookConnectState").listen("LLFacebookAccountPanel", boost::bind(&LLFacebookStatusPanel::onFacebookConnectStateChange, this, _1)); + LLEventPumps::instance().obtain("FacebookConnectState").listen("LLFacebookAccountPanel", boost::bind(&LLFacebookStatusPanel::onFacebookConnectAccountStateChange, this, _1)); LLEventPumps::instance().obtain("FacebookConnectInfo").stopListening("LLFacebookAccountPanel"); LLEventPumps::instance().obtain("FacebookConnectInfo").listen("LLFacebookAccountPanel", boost::bind(&LLFacebookStatusPanel::onFacebookConnectInfoChange, this)); @@ -295,7 +298,6 @@ void LLFacebookStatusPanel::onConnect() { LLFacebookConnect::instance().checkConnectionToFacebook(true); - pressedConnect = TRUE; //Clear only the facebook browser cookies so that the facebook login screen appears LLViewerMedia::getCookieStore()->removeCookiesByDomain(".facebook.com"); } |