diff options
| author | andreykproductengine <akleshchev@productengine.com> | 2015-04-27 16:00:32 +0300 | 
|---|---|---|
| committer | andreykproductengine <akleshchev@productengine.com> | 2015-04-27 16:00:32 +0300 | 
| commit | d05107193b03fc4b035975bae99710d0167ce0ad (patch) | |
| tree | 6d24f3f6b96fbb62029185f8b49b9ccb7ade3590 | |
| parent | bb87365c37047a35bf524a98d5a48cdb2d56948e (diff) | |
MAINT-5062 FIXED Non-default UI sizing breaks scroll bar functions
| -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); | 
