diff options
| author | Monroe Linden <monroe@lindenlab.com> | 2009-10-27 17:52:05 -0700 | 
|---|---|---|
| committer | Monroe Linden <monroe@lindenlab.com> | 2009-10-27 17:52:05 -0700 | 
| commit | 6d14996bab5d1e9d52ae067606a7c769a304b65c (patch) | |
| tree | 58e06df9f0d7511b97493d1e6300d05a69a5aeb8 | |
| parent | b2a64d204deeca17c1a73908cb8fb9e8837ecf71 (diff) | |
Fixes for several keyboard focus issues around prim media.
| -rw-r--r-- | indra/newview/lltoolpie.cpp | 3 | ||||
| -rw-r--r-- | indra/newview/llviewermediafocus.cpp | 16 | 
2 files changed, 10 insertions, 9 deletions
| diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index 22ed1ec219..7c17699bf9 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -1049,6 +1049,9 @@ bool LLToolPie::handleMediaClick(const LLPickInfo& pick)  		}  		else  		{ +			// Make sure keyboard focus is set to the media focus object. +			gFocusMgr.setKeyboardFocus(LLViewerMediaFocus::getInstance()); +			  			media_impl->mouseDown(pick.mUVCoords, gKeyboard->currentMask(TRUE));  			mMediaMouseCaptureID = mep->getMediaID();  			setMouseCapture(TRUE);  // This object will send a mouse-up to the media when it loses capture. diff --git a/indra/newview/llviewermediafocus.cpp b/indra/newview/llviewermediafocus.cpp index ad48ec145b..b47e0b8406 100644 --- a/indra/newview/llviewermediafocus.cpp +++ b/indra/newview/llviewermediafocus.cpp @@ -114,7 +114,7 @@ void LLViewerMediaFocus::setFocusFace(LLPointer<LLViewerObject> objectp, S32 fac  	}  	else  	{ -		if(hasFocus()) +		if(mFocusedImplID != LLUUID::null)  		{  			if(mMediaHUD.get())  			{ @@ -249,20 +249,18 @@ void LLViewerMediaFocus::setCameraZoom(LLViewerObject* object, LLVector3 normal,  }  void LLViewerMediaFocus::onFocusReceived()  { -	// Don't do this here -- this doesn't change "inworld media focus", it just changes whether the viewer's input is focused on the media. -//	LLViewerMediaImpl* media_impl = getFocusedMediaImpl(); -//	if(media_impl.notNull()) -//		media_impl->focus(true); +	LLViewerMediaImpl* media_impl = getFocusedMediaImpl(); +	if(media_impl) +		media_impl->focus(true);  	LLFocusableElement::onFocusReceived();  }  void LLViewerMediaFocus::onFocusLost()  { -	// Don't do this here -- this doesn't change "inworld media focus", it just changes whether the viewer's input is focused on the media. -//	LLViewerMediaImpl* media_impl = getFocusedMediaImpl(); -//	if(media_impl.notNull()) -//		media_impl->focus(false); +	LLViewerMediaImpl* media_impl = getFocusedMediaImpl(); +	if(media_impl) +		media_impl->focus(false);  	gViewerWindow->focusClient();  	LLFocusableElement::onFocusLost(); | 
