MAINT-8382 FIXED “Zoom back” button is displayed after selecting other nearby media

meow-7.2.2
maxim_productengine 2018-03-13 18:31:27 +02:00
parent 2835e77640
commit b1d9487556
3 changed files with 14 additions and 2 deletions

View File

@ -1047,7 +1047,7 @@ void LLPanelNearByMedia::updateControls()
else {
showBasicControls(!impl->isMediaDisabled(),
! impl->isParcelMedia(), // include_zoom
LLViewerMediaFocus::getInstance()->isZoomed(),
LLViewerMediaFocus::getInstance()->isZoomedOnMedia(impl->getMediaTextureID()),
impl->getVolume() == 0.0,
impl->getVolume());
}

View File

@ -82,7 +82,7 @@ void LLViewerMediaFocus::setFocusFace(LLPointer<LLViewerObject> objectp, S32 fac
if (media_impl.notNull() && objectp.notNull())
{
bool face_auto_zoom = false;
mPrevFocusedImplID = LLUUID::null;
mFocusedImplID = media_impl->getMediaTextureID();
mFocusedObjectID = objectp->getID();
mFocusedObjectFace = face;
@ -403,6 +403,7 @@ void LLViewerMediaFocus::update()
else
{
// Someone else has focus -- back off.
mPrevFocusedImplID = mFocusedImplID;
clearFocus();
}
}
@ -602,6 +603,15 @@ bool LLViewerMediaFocus::isZoomed() const
return (mMediaControls.get() && mMediaControls.get()->getZoomLevel() != LLPanelPrimMediaControls::ZOOM_NONE);
}
bool LLViewerMediaFocus::isZoomedOnMedia(LLUUID media_id)
{
if (isZoomed())
{
return (mFocusedImplID == media_id) || (mPrevFocusedImplID == media_id);
}
return false;
}
LLUUID LLViewerMediaFocus::getControlsMediaID()
{
if(getFocusedMediaImpl())

View File

@ -83,6 +83,7 @@ public:
void focusZoomOnMedia(LLUUID media_id);
// Are we zoomed in?
bool isZoomed() const;
bool isZoomedOnMedia(LLUUID media_id);
void unZoom();
// Return the ID of the media instance the controls are currently attached to (either focus or hover).
@ -104,6 +105,7 @@ private:
LLUUID mFocusedObjectID;
S32 mFocusedObjectFace;
LLUUID mFocusedImplID;
LLUUID mPrevFocusedImplID;
LLVector3 mFocusedObjectNormal;
LLUUID mHoverObjectID;