3506 for (ch = _T('\033'); ch < _T('\040'); ch++) {
3507 vk = ::VkKeyScan(ch);
3508 if (wkey == LOBYTE(vk)) {
3509 UINT shiftState = HIBYTE(vk);
3510 if ((shiftState & _VKS_CTRL_MASK) ||
3511 (!(shiftState & _VKS_SHIFT_MASK)
3512 == !shiftIsDown))
3513 {
3514 keyboardState[VK_CONTROL] |= KEY_STATE_DOWN;
3515 }
3516 break;
3517 }
3518 }
3519 }
3520 } // ctrlIsDown && altIsDown
3521 } // ctrlIsDown
3522 } // modifiers
3523
3524 WORD wChar[2];
3525 int converted = 1;
3526 UINT ch = ::MapVirtualKey(wkey, 2);
3527 if (ch & 0x80000000) {
3528 // Dead key which is handled as a normal key
3529 isDeadKey = deadKeyActive = TRUE;
3530 } else if (deadKeyActive) {
3531 // We cannot use ::ToUnicodeEx if dead key is active because this will
3532 // break dead key function
3533 wChar[0] = shiftIsDown ? ch : tolower(ch);
3534 } else {
3535 UINT scancode = ::MapVirtualKey(wkey, 0);
3536 converted = ::ToUnicodeEx(wkey, scancode, keyboardState,
3537 wChar, 2, 0, GetKeyboardLayout());
3538 }
3539
3540 UINT translation;
3541 BOOL deadKeyFlag = (converted == 2);
3542
3543 // Dead Key
3544 if (converted < 0 || isDeadKey) {
3545 translation = java_awt_event_KeyEvent_CHAR_UNDEFINED;
3546 } else
|
3506 for (ch = _T('\033'); ch < _T('\040'); ch++) {
3507 vk = ::VkKeyScan(ch);
3508 if (wkey == LOBYTE(vk)) {
3509 UINT shiftState = HIBYTE(vk);
3510 if ((shiftState & _VKS_CTRL_MASK) ||
3511 (!(shiftState & _VKS_SHIFT_MASK)
3512 == !shiftIsDown))
3513 {
3514 keyboardState[VK_CONTROL] |= KEY_STATE_DOWN;
3515 }
3516 break;
3517 }
3518 }
3519 }
3520 } // ctrlIsDown && altIsDown
3521 } // ctrlIsDown
3522 } // modifiers
3523
3524 WORD wChar[2];
3525 int converted = 1;
3526 UINT ch = ::MapVirtualKeyEx(wkey, 2, GetKeyboardLayout());
3527 if (ch & 0x80000000) {
3528 // Dead key which is handled as a normal key
3529 isDeadKey = deadKeyActive = TRUE;
3530 } else if (deadKeyActive) {
3531 // We cannot use ::ToUnicodeEx if dead key is active because this will
3532 // break dead key function
3533 wChar[0] = shiftIsDown ? ch : tolower(ch);
3534 } else {
3535 UINT scancode = ::MapVirtualKey(wkey, 0);
3536 converted = ::ToUnicodeEx(wkey, scancode, keyboardState,
3537 wChar, 2, 0, GetKeyboardLayout());
3538 }
3539
3540 UINT translation;
3541 BOOL deadKeyFlag = (converted == 2);
3542
3543 // Dead Key
3544 if (converted < 0 || isDeadKey) {
3545 translation = java_awt_event_KeyEvent_CHAR_UNDEFINED;
3546 } else
|