diff options
| author | Tofu Linden <tofu.linden@lindenlab.com> | 2009-11-23 15:53:49 +0000 |
|---|---|---|
| committer | Tofu Linden <tofu.linden@lindenlab.com> | 2009-11-23 15:53:49 +0000 |
| commit | a434e32097ca59c19a7c38aeae6b1991272569df (patch) | |
| tree | 34237f1926aee21a80f977e5b363a7c0a8592b21 /indra/newview/llviewermediafocus.cpp | |
| parent | 21723e85677c69c4f78946d971bbf0e0c9cd37e5 (diff) | |
| parent | 1b07c1d7fb5b6d3ce15083bc3dbb65a3f0ac8006 (diff) | |
merge.
Diffstat (limited to 'indra/newview/llviewermediafocus.cpp')
| -rw-r--r-- | indra/newview/llviewermediafocus.cpp | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/indra/newview/llviewermediafocus.cpp b/indra/newview/llviewermediafocus.cpp index 70a7d835a3..fd74c9c2fc 100644 --- a/indra/newview/llviewermediafocus.cpp +++ b/indra/newview/llviewermediafocus.cpp @@ -120,10 +120,20 @@ void LLViewerMediaFocus::setFocusFace(LLPointer<LLViewerObject> objectp, S32 fac // We must do this before processing the media HUD zoom, or it may zoom to the wrong face. update(); - if(mMediaControls.get() && face_auto_zoom && ! parcel->getMediaPreventCameraZoom()) + if(mMediaControls.get()) { - mMediaControls.get()->resetZoomLevel(); - mMediaControls.get()->nextZoomLevel(); + if(face_auto_zoom && ! parcel->getMediaPreventCameraZoom()) + { + // Zoom in on this face + mMediaControls.get()->resetZoomLevel(); + mMediaControls.get()->nextZoomLevel(); + } + else + { + // Reset the controls' zoom level without moving the camera. + // This fixes the case where clicking focus between two non-autozoom faces doesn't change the zoom-out button back to a zoom-in button. + mMediaControls.get()->resetZoomLevel(false); + } } } else @@ -132,7 +142,8 @@ void LLViewerMediaFocus::setFocusFace(LLPointer<LLViewerObject> objectp, S32 fac { if(mMediaControls.get()) { - mMediaControls.get()->resetZoomLevel(); + // Don't reset camera zoom by default, just tell the controls they're no longer controlling zoom. + mMediaControls.get()->resetZoomLevel(false); } } @@ -292,6 +303,15 @@ BOOL LLViewerMediaFocus::handleKey(KEY key, MASK mask, BOOL called_from_parent) if (key == KEY_ESCAPE) { + // Reset camera zoom in this case. + if(mFocusedImplID.notNull()) + { + if(mMediaControls.get()) + { + mMediaControls.get()->resetZoomLevel(true); + } + } + clearFocus(); } } |
