summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorMonroe Linden <monroe@lindenlab.com>2009-11-09 17:11:13 -0800
committerMonroe Linden <monroe@lindenlab.com>2009-11-09 17:11:13 -0800
commit312e7d21a4d4996460e84aca478691ac0a4828ea (patch)
tree57cbcac36a17a8f2d06ae21c34d8615a7fdaa473 /indra
parentcaadf0be39b844e6bf91c5a302a837d107a1e415 (diff)
Refinement to my previous commit:
Created LLViewerMediaImpl::unload(), which unloads the media and clears internal state (such as the last-navigated URL) to keep it from getting reloaded. LLViewerMedia::updateMediaImpl() now calls unload() on the impl instead of just using destroyMediaSource().
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llviewermedia.cpp14
-rw-r--r--indra/newview/llviewermedia.h1
2 files changed, 13 insertions, 2 deletions
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 91f4ff9b84..11c1fcb1ea 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -264,8 +264,7 @@ viewer_media_t LLViewerMedia::updateMediaImpl(LLMediaEntry* media_entry, const s
if(media_entry->getCurrentURL().empty())
{
// The current media URL is now empty. Unload the media source.
- if(was_loaded)
- media_impl->destroyMediaSource();
+ media_impl->unload();
}
else
{
@@ -1271,6 +1270,17 @@ void LLViewerMediaImpl::navigateHome()
}
//////////////////////////////////////////////////////////////////////////////////////////
+void LLViewerMediaImpl::unload()
+{
+ // Unload the media impl and clear its state.
+ destroyMediaSource();
+ resetPreviousMediaState();
+ mMediaURL.clear();
+ mMimeType.clear();
+ mCurrentMediaURL.clear();
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////
void LLViewerMediaImpl::navigateTo(const std::string& url, const std::string& mime_type, bool rediscover_type, bool server_request)
{
if(mMediaURL != url)
diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h
index 4cb0817735..7cbfb56ffc 100644
--- a/indra/newview/llviewermedia.h
+++ b/indra/newview/llviewermedia.h
@@ -165,6 +165,7 @@ public:
void navigateForward();
void navigateReload();
void navigateHome();
+ void unload();
void navigateTo(const std::string& url, const std::string& mime_type = "", bool rediscover_type = false, bool server_request = false);
void navigateInternal();
void navigateStop();