diff options
| author | Rick Pasetto <rick@lindenlab.com> | 2009-11-25 15:50:58 -0800 | 
|---|---|---|
| committer | Rick Pasetto <rick@lindenlab.com> | 2009-11-25 15:50:58 -0800 | 
| commit | 6824800fa0001cd4a23a4f98b099af34435b0e06 (patch) | |
| tree | 37322ee3d26f083ee04d2582d424608241c51b93 | |
| parent | a4f8fb48fc0a2b91abfb5f732669f0ece2dfb1b7 (diff) | |
| parent | a7fde5f5304651d3afb82e5a202089d78c3c57c7 (diff) | |
Automated merge with ssh://rick@hg.lindenlab.com/skolb/media
| -rw-r--r-- | indra/newview/llpanelprimmediacontrols.cpp | 21 | ||||
| -rw-r--r-- | indra/newview/llpanelprimmediacontrols.h | 3 | ||||
| -rw-r--r-- | indra/newview/llviewermediafocus.cpp | 9 | 
3 files changed, 20 insertions, 13 deletions
| diff --git a/indra/newview/llpanelprimmediacontrols.cpp b/indra/newview/llpanelprimmediacontrols.cpp index c3aa602ee6..e86123d565 100644 --- a/indra/newview/llpanelprimmediacontrols.cpp +++ b/indra/newview/llpanelprimmediacontrols.cpp @@ -82,7 +82,13 @@ LLPanelPrimMediaControls::LLPanelPrimMediaControls() :  	mUpdateSlider(true),  	mClearFaceOnFade(false),  	mCurrentRate(0.0), -	mMovieDuration(0.0) +	mMovieDuration(0.0), +	mTargetObjectID(LLUUID::null), +	mTargetObjectFace(0), +	mTargetImplID(LLUUID::null), +	mTargetObjectNormal(LLVector3::zero), +	mZoomObjectID(LLUUID::null), +	mZoomObjectFace(0)  {  	mCommitCallbackRegistrar.add("MediaCtrl.Close",		boost::bind(&LLPanelPrimMediaControls::onClickClose, this));  	mCommitCallbackRegistrar.add("MediaCtrl.Back",		boost::bind(&LLPanelPrimMediaControls::onClickBack, this)); @@ -277,7 +283,7 @@ void LLPanelPrimMediaControls::updateShape()  	bool can_navigate = parcel->getMediaAllowNavigate();  	bool enabled = false; -	bool is_zoomed = (mCurrentZoom != ZOOM_NONE); +	bool is_zoomed = (mCurrentZoom != ZOOM_NONE) && (mTargetObjectID == mZoomObjectID) && (mTargetObjectFace == mZoomObjectFace);  	// There is no such thing as "has_focus" being different from normal controls set  	// anymore (as of user feedback from bri 10/09).  So we cheat here and force 'has_focus'  	// to 'true' (or, actually, we use a setting) @@ -307,7 +313,7 @@ void LLPanelPrimMediaControls::updateShape()  		mStopCtrl->setVisible(false);  		mHomeCtrl->setVisible(has_focus);  		mZoomCtrl->setVisible(!is_zoomed); -		mUnzoomCtrl->setVisible(has_focus && is_zoomed); +		mUnzoomCtrl->setVisible(is_zoomed);  		mOpenCtrl->setVisible(true);  		mMediaAddressCtrl->setVisible(has_focus && !mini_controls);  		mMediaPlaySliderPanel->setVisible(has_focus && !mini_controls); @@ -982,9 +988,16 @@ void LLPanelPrimMediaControls::updateZoom()  		}  	} -	if (zoom_padding > 0.0f)		 +	if (zoom_padding > 0.0f) +	{  		LLViewerMediaFocus::setCameraZoom(getTargetObject(), mTargetObjectNormal, zoom_padding); +	} +	 +	// Remember the object ID/face we zoomed into, so we can update the zoom icon appropriately +	mZoomObjectID = mTargetObjectID; +	mZoomObjectFace = mTargetObjectFace;  } +  void LLPanelPrimMediaControls::onScrollUp(void* user_data)  {  	LLPanelPrimMediaControls* this_panel = static_cast<LLPanelPrimMediaControls*> (user_data); diff --git a/indra/newview/llpanelprimmediacontrols.h b/indra/newview/llpanelprimmediacontrols.h index 4bb05265c8..fe8f100abe 100644 --- a/indra/newview/llpanelprimmediacontrols.h +++ b/indra/newview/llpanelprimmediacontrols.h @@ -195,6 +195,9 @@ private:  	S32 mTargetObjectFace;  	LLUUID mTargetImplID;  	LLVector3 mTargetObjectNormal; +	 +	LLUUID mZoomObjectID; +	S32 mZoomObjectFace;  };  #endif // LL_PANELPRIMMEDIACONTROLS_H diff --git a/indra/newview/llviewermediafocus.cpp b/indra/newview/llviewermediafocus.cpp index fd74c9c2fc..f639c841e7 100644 --- a/indra/newview/llviewermediafocus.cpp +++ b/indra/newview/llviewermediafocus.cpp @@ -138,15 +138,6 @@ void LLViewerMediaFocus::setFocusFace(LLPointer<LLViewerObject> objectp, S32 fac  	}  	else  	{ -		if(mFocusedImplID.notNull()) -		{ -			if(mMediaControls.get()) -			{ -				// Don't reset camera zoom by default, just tell the controls they're no longer controlling zoom. -				mMediaControls.get()->resetZoomLevel(false); -			} -		} -  		if(hasFocus())  		{  			gFocusMgr.setKeyboardFocus(NULL); | 
