diff options
author | Rick Pasetto <rick@lindenlab.com> | 2009-10-07 12:26:42 -0700 |
---|---|---|
committer | Rick Pasetto <rick@lindenlab.com> | 2009-10-07 12:26:42 -0700 |
commit | df48e66f7cc6711f1738e3a2817cf3b9a810c088 (patch) | |
tree | c9a660eab1d800081547e644cd39c4cfc52d541f /indra/newview/llmediadataclient.cpp | |
parent | d2464757c6fa86caa30a13071cb43047de2dd2ff (diff) |
DEV-39168 - bounce back to the current URL (or, the home URL if current URL is "") if the server denies navigation
This refactors some of the bounceBack code into LLVOVolume.
It also changes an important rule: the edit panel now *will* send the
current URL to the server when you hit "OK". This change was done so
that if autoplay is on, we make sure the server gets the right data.
Diffstat (limited to 'indra/newview/llmediadataclient.cpp')
-rw-r--r-- | indra/newview/llmediadataclient.cpp | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/indra/newview/llmediadataclient.cpp b/indra/newview/llmediadataclient.cpp index da5e68af71..4dde381e97 100644 --- a/indra/newview/llmediadataclient.cpp +++ b/indra/newview/llmediadataclient.cpp @@ -568,8 +568,10 @@ void LLObjectMediaNavigateClient::Responder::error(U32 status, const std::string } else { // bounce the face back - bounceBack(); LL_WARNS("LLMediaDataClient") << *(getRequest()) << " Error navigating: http code=" << status << LL_ENDL; + const LLSD &payload = getRequest()->getPayload(); + // bounce the face back + getRequest()->getObject()->mediaNavigateBounceBack((LLSD::Integer)payload[LLTextureEntry::TEXTURE_INDEX_KEY]); } } @@ -586,8 +588,9 @@ void LLObjectMediaNavigateClient::Responder::result(const LLSD& content) if (ERROR_PERMISSION_DENIED_CODE == error_code) { LL_WARNS("LLMediaDataClient") << *(getRequest()) << " Navigation denied: bounce back" << LL_ENDL; + const LLSD &payload = getRequest()->getPayload(); // bounce the face back - bounceBack(); + getRequest()->getObject()->mediaNavigateBounceBack((LLSD::Integer)payload[LLTextureEntry::TEXTURE_INDEX_KEY]); } else { LL_WARNS("LLMediaDataClient") << *(getRequest()) << " Error navigating: code=" << @@ -600,23 +603,3 @@ void LLObjectMediaNavigateClient::Responder::result(const LLSD& content) LLMediaDataClient::Responder::result(content); } } - - -void LLObjectMediaNavigateClient::Responder::bounceBack() -{ - const LLSD &payload = getRequest()->getPayload(); - U8 texture_index = (U8)(LLSD::Integer)payload[LLTextureEntry::TEXTURE_INDEX_KEY]; - viewer_media_t impl = getRequest()->getObject()->getMediaImpl(texture_index); - // Find the media entry for this navigate - LLMediaEntry* mep = NULL; - LLTextureEntry *te = getRequest()->getObject()->getTE(texture_index); - if(te) - { - mep = te->getMediaData(); - } - - if (mep && impl) - { -// impl->navigateTo(mep->getCurrentURL(), "", false, true); - } -} |