Fix for DEV-41542 (hitting Tab at google login on MoaP inserts a character into the password field).

Moved some special-case handling from LLMediaCtrl::handleKeyHere/handleUnicodeCharHere to LLViewerMediaImpl::handleKeyHere/handleUnicodeCharHere so that the key handling for LLViewerMediaFocus gets the benefit of it as well.
meow-7.2.2
Monroe Linden 2009-10-21 17:34:07 -07:00
parent 7034a4ef9b
commit c1583be773
2 changed files with 36 additions and 35 deletions

View File

@ -321,36 +321,9 @@ BOOL LLMediaCtrl::handleKeyHere( KEY key, MASK mask )
{
BOOL result = FALSE;
// FIXME: THIS IS SO WRONG.
// Menu keys should be handled by the menu system and not passed to UI elements, but this is how LLTextEditor and LLLineEditor do it...
if (mMediaSource)
{
if( MASK_CONTROL & mask )
{
if( 'C' == key )
{
mMediaSource->copy();
result = TRUE;
}
else
if( 'V' == key )
{
mMediaSource->paste();
result = TRUE;
}
else
if( 'X' == key )
{
mMediaSource->cut();
result = TRUE;
}
}
if(!result)
{
result = mMediaSource->handleKeyHere(key, mask);
}
result = mMediaSource->handleKeyHere(key, mask);
}
return result;
@ -373,12 +346,9 @@ BOOL LLMediaCtrl::handleUnicodeCharHere(llwchar uni_char)
{
BOOL result = FALSE;
// only accept 'printable' characters, sigh...
if (uni_char >= 32 // discard 'control' characters
&& uni_char != 127) // SDL thinks this is 'delete' - yuck.
if (mMediaSource)
{
if (mMediaSource)
result = mMediaSource->handleUnicodeCharHere(uni_char);
result = mMediaSource->handleUnicodeCharHere(uni_char);
}
return result;

View File

@ -1197,7 +1197,33 @@ bool LLViewerMediaImpl::handleKeyHere(KEY key, MASK mask)
if (mMediaSource)
{
result = mMediaSource->keyEvent(LLPluginClassMedia::KEY_EVENT_DOWN ,key, mask);
// FIXME: THIS IS SO WRONG.
// Menu keys should be handled by the menu system and not passed to UI elements, but this is how LLTextEditor and LLLineEditor do it...
if( MASK_CONTROL & mask )
{
if( 'C' == key )
{
mMediaSource->copy();
result = true;
}
else
if( 'V' == key )
{
mMediaSource->paste();
result = true;
}
else
if( 'X' == key )
{
mMediaSource->cut();
result = true;
}
}
if(!result)
{
result = mMediaSource->keyEvent(LLPluginClassMedia::KEY_EVENT_DOWN ,key, mask);
}
}
return result;
@ -1210,7 +1236,12 @@ bool LLViewerMediaImpl::handleUnicodeCharHere(llwchar uni_char)
if (mMediaSource)
{
mMediaSource->textInput(wstring_to_utf8str(LLWString(1, uni_char)));
// only accept 'printable' characters, sigh...
if (uni_char >= 32 // discard 'control' characters
&& uni_char != 127) // SDL thinks this is 'delete' - yuck.
{
mMediaSource->textInput(wstring_to_utf8str(LLWString(1, uni_char)));
}
}
return result;