Bug 314130 input numbers twice when using Unispim IME at chinese input mode r=ere, sr=roc

This commit is contained in:
masayuki%d-toybox.com 2006-05-21 08:16:27 +00:00
Родитель 93e89a4058
Коммит cce1d49d68
3 изменённых файлов: 13 добавлений и 1 удалений

Просмотреть файл

@ -220,6 +220,15 @@ PRBool KeyboardLayout::IsPrintableCharKey (PRUint8 aVirtualKey)
#endif
}
PRBool KeyboardLayout::IsNumpadKey (PRUint8 aVirtualKey)
{
#ifndef WINCE
return VK_NUMPAD0 <= aVirtualKey && aVirtualKey <= VK_DIVIDE;
#else
return PR_FALSE;
#endif
}
void KeyboardLayout::OnKeyDown (PRUint8 aVirtualKey)
{
#ifndef WINCE

Просмотреть файл

@ -176,6 +176,7 @@ public:
~KeyboardLayout ();
static PRBool IsPrintableCharKey (PRUint8 aVirtualKey);
static PRBool IsNumpadKey (PRUint8 aVirtualKey);
PRBool IsDeadKey () const
{

Просмотреть файл

@ -3404,7 +3404,9 @@ BOOL nsWindow::OnKeyDown(UINT aVirtualKeyCode, UINT aScanCode, LPARAM aKeyData)
#endif
return OnChar(msg.wParam, extraFlags);
} else if (!mIsControlDown && !mIsAltDown &&
KeyboardLayout::IsPrintableCharKey(aVirtualKeyCode)) {
(KeyboardLayout::IsPrintableCharKey(aVirtualKeyCode) ||
KeyboardLayout::IsNumpadKey(aVirtualKeyCode)))
{
// If this is simple KeyDown event but next message is not WM_CHAR,
// this event may not input text, so we should ignore this event.
// See bug 314130.