diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llviewermedia.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llviewermedia.h | 1 | 
2 files changed, 8 insertions, 3 deletions
| diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index bf96472e7e..0fc0afed3e 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -987,7 +987,7 @@ void LLViewerMediaImpl::emitEvent(LLPluginClassMedia* plugin, LLViewerMediaObser  bool LLViewerMediaImpl::initializeMedia(const std::string& mime_type)  {  	bool mimeTypeChanged = (mMimeType != mime_type); -	bool pluginChanged = (LLMIMETypes::implType(mMimeType) != LLMIMETypes::implType(mime_type)); +	bool pluginChanged = (LLMIMETypes::implType(mCurrentMimeType) != LLMIMETypes::implType(mime_type));  	if(!mMediaSource || pluginChanged)  	{ @@ -1127,6 +1127,9 @@ bool LLViewerMediaImpl::initializePlugin(const std::string& media_type)  	// If we got here, we want to ignore previous init failures.  	mMediaSourceFailed = false; +	// Save the MIME type that really caused the plugin to load +	mCurrentMimeType = mMimeType; +  	LLPluginClassMedia* media_source = newSourceFromMediaType(mMimeType, this, mMediaWidth, mMediaHeight);  	if (media_source) @@ -1563,6 +1566,7 @@ void LLViewerMediaImpl::unload()  	mMediaURL.clear();  	mMimeType.clear();  	mCurrentMediaURL.clear(); +	mCurrentMimeType.clear();  }  ////////////////////////////////////////////////////////////////////////////////////////// @@ -2123,7 +2127,7 @@ void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginCla  			// TODO: may want a different message for this case?  			LLSD args; -			args["PLUGIN"] = LLMIMETypes::implType(mMimeType); +			args["PLUGIN"] = LLMIMETypes::implType(mCurrentMimeType);  			LLNotificationsUtil::add("MediaPluginFailed", args);  		}  		break; @@ -2137,7 +2141,7 @@ void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginCla  			resetPreviousMediaState();  			LLSD args; -			args["PLUGIN"] = LLMIMETypes::implType(mMimeType); +			args["PLUGIN"] = LLMIMETypes::implType(mCurrentMimeType);  			// SJB: This is getting called every frame if the plugin fails to load, continuously respawining the alert!  			//LLNotificationsUtil::add("MediaPluginFailed", args);  		} diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index 63f461b4c4..9119b783c2 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -324,6 +324,7 @@ public:  	std::string mHomeURL;  	std::string mMimeType;  	std::string mCurrentMediaURL;	// The most current media url from the plugin (via the "location changed" or "navigate complete" events). +	std::string mCurrentMimeType;	// The MIME type that caused the currently loaded plugin to be loaded.  	S32 mLastMouseX;	// save the last mouse coord we get, so when we lose capture we can simulate a mouseup at that point.  	S32 mLastMouseY;  	S32 mMediaWidth; | 
