diff options
Diffstat (limited to 'indra')
| -rwxr-xr-x | indra/newview/llmediactrl.cpp | 19 | ||||
| -rwxr-xr-x | indra/newview/llmediactrl.h | 3 | ||||
| -rwxr-xr-x | indra/newview/llviewermedia.h | 1 | 
3 files changed, 19 insertions, 4 deletions
| diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index b96bdd73ff..cd3d0cdbf2 100755 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -95,6 +95,7 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) :  	mStretchToFill( true ),  	mMaintainAspectRatio ( true ),  	mDecoupleTextureSize ( false ), +	mUpdateScrolls( false ),  	mTextureWidth ( 1024 ),  	mTextureHeight ( 1024 ),  	mClearCache(false), @@ -682,7 +683,13 @@ bool LLMediaCtrl::ensureMediaSourceExists()  			mMediaSource->addObserver( this );  			mMediaSource->setBackgroundColor( getBackgroundColor() );  			mMediaSource->setTrustedBrowser(mTrusted); -			mMediaSource->setPageZoomFactor( LLUI::getScaleFactor().mV[ VX ] ); + +			F32 scale_factor = LLUI::getScaleFactor().mV[ VX ]; +			if (scale_factor != mMediaSource->getPageZoomFactor()) +			{ +				mMediaSource->setPageZoomFactor( scale_factor ); +				mUpdateScrolls = true; +			}  			if(mClearCache)  			{ @@ -720,10 +727,11 @@ void LLMediaCtrl::draw()  {  	F32 alpha = getDrawContext().mAlpha; -	if ( gRestoreGL == 1 ) +	if ( gRestoreGL == 1 || mUpdateScrolls)  	{  		LLRect r = getRect();  		reshape( r.getWidth(), r.getHeight(), FALSE ); +		mUpdateScrolls = false;  		return;  	} @@ -765,7 +773,12 @@ void LLMediaCtrl::draw()  	{  		gGL.pushUIMatrix();  		{ -			mMediaSource->setPageZoomFactor( LLUI::getScaleFactor().mV[ VX ] ); +			F32 scale_factor = LLUI::getScaleFactor().mV[ VX ]; +			if (scale_factor != mMediaSource->getPageZoomFactor()) +			{ +				mMediaSource->setPageZoomFactor( scale_factor ); +				mUpdateScrolls = true; +			}  			// scale texture to fit the space using texture coords  			gGL.getTexUnit(0)->bind(media_texture); diff --git a/indra/newview/llmediactrl.h b/indra/newview/llmediactrl.h index 785c57b78a..988733b85a 100755 --- a/indra/newview/llmediactrl.h +++ b/indra/newview/llmediactrl.h @@ -192,7 +192,8 @@ public:  				mHidingInitialLoad,  				mClearCache,  				mHoverTextChanged, -				mDecoupleTextureSize; +				mDecoupleTextureSize, +				mUpdateScrolls;  		std::string mHomePageUrl,  					mHomePageMimeType, diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index 6803adfaa2..1ce42e97b8 100755 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -248,6 +248,7 @@ public:  	void setHomeURL(const std::string& home_url, const std::string& mime_type = LLStringUtil::null) { mHomeURL = home_url; mHomeMimeType = mime_type;};  	void clearCache();  	void setPageZoomFactor( double factor ); +	double getPageZoomFactor() {return mZoomFactor;}  	std::string getMimeType() { return mMimeType; }  	void scaleMouse(S32 *mouse_x, S32 *mouse_y);  	void scaleTextureCoords(const LLVector2& texture_coords, S32 *x, S32 *y); | 
