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
parent
7034a4ef9b
commit
c1583be773
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue