src/windows/native/sun/windows/awt_Component.cpp

Print this page

        

*** 2134,2156 **** } return time; } jlong getMessageTimeUTC() { ! return windowsToUTC(getMessageTimeWindows()); ! } ! ! // If calling order of GetTickCount and JVM_CurrentTimeMillis ! // is swapped, it would sometimes give different result. ! // Anyway, we would not always have determinism ! // and sortedness of time conversion here (due to Windows's ! // timers peculiarities). Having some euristic algorithm might ! // help here. ! jlong windowsToUTC(DWORD windowsTime) { ! jlong offset = ::GetTickCount() - windowsTime; ! jlong jvm_time = ::JVM_CurrentTimeMillis(NULL, 0); ! return jvm_time - offset; } } //TimeHelper MsgRouting AwtComponent::WmPaint(HDC) { --- 2134,2144 ---- } return time; } jlong getMessageTimeUTC() { ! return ::JVM_CurrentTimeMillis(NULL, 0); } } //TimeHelper MsgRouting AwtComponent::WmPaint(HDC) {
*** 3571,3591 **** UINT jkey = WindowsKeyToJavaKey(wkey, modifiers, character, isDeadKey); UpdateDynPrimaryKeymap(wkey, jkey, keyLocation, modifiers); SendKeyEventToFocusOwner(java_awt_event_KeyEvent_KEY_PRESSED, ! TimeHelper::windowsToUTC(msg.time), jkey, character, modifiers, keyLocation, (jlong)wkey, &msg); // bugid 4724007: Windows does not create a WM_CHAR for the Del key // for some reason, so we need to create the KEY_TYPED event on the // WM_KEYDOWN. Use null msg so the character doesn't get sent back // to the native window for processing (this event is synthesized // for Java - we don't want Windows trying to process it). if (jkey == java_awt_event_KeyEvent_VK_DELETE) { SendKeyEventToFocusOwner(java_awt_event_KeyEvent_KEY_TYPED, ! TimeHelper::windowsToUTC(msg.time), java_awt_event_KeyEvent_VK_UNDEFINED, character, modifiers, java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN, (jlong)0); } --- 3559,3579 ---- UINT jkey = WindowsKeyToJavaKey(wkey, modifiers, character, isDeadKey); UpdateDynPrimaryKeymap(wkey, jkey, keyLocation, modifiers); SendKeyEventToFocusOwner(java_awt_event_KeyEvent_KEY_PRESSED, ! TimeHelper::getMessageTimeUTC(), jkey, character, modifiers, keyLocation, (jlong)wkey, &msg); // bugid 4724007: Windows does not create a WM_CHAR for the Del key // for some reason, so we need to create the KEY_TYPED event on the // WM_KEYDOWN. Use null msg so the character doesn't get sent back // to the native window for processing (this event is synthesized // for Java - we don't want Windows trying to process it). if (jkey == java_awt_event_KeyEvent_VK_DELETE) { SendKeyEventToFocusOwner(java_awt_event_KeyEvent_KEY_TYPED, ! TimeHelper::getMessageTimeUTC(), java_awt_event_KeyEvent_VK_UNDEFINED, character, modifiers, java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN, (jlong)0); }
*** 3613,3623 **** UINT character = WindowsKeyToJavaChar(wkey, modifiers, LOAD, isDeadKey); UINT jkey = WindowsKeyToJavaKey(wkey, modifiers, character, isDeadKey); UpdateDynPrimaryKeymap(wkey, jkey, keyLocation, modifiers); SendKeyEventToFocusOwner(java_awt_event_KeyEvent_KEY_RELEASED, ! TimeHelper::windowsToUTC(msg.time), jkey, character, modifiers, keyLocation, (jlong)wkey, &msg); return mrConsume; } MsgRouting AwtComponent::WmInputLangChange(UINT charset, HKL hKeyboardLayout) --- 3601,3611 ---- UINT character = WindowsKeyToJavaChar(wkey, modifiers, LOAD, isDeadKey); UINT jkey = WindowsKeyToJavaKey(wkey, modifiers, character, isDeadKey); UpdateDynPrimaryKeymap(wkey, jkey, keyLocation, modifiers); SendKeyEventToFocusOwner(java_awt_event_KeyEvent_KEY_RELEASED, ! TimeHelper::getMessageTimeUTC(), jkey, character, modifiers, keyLocation, (jlong)wkey, &msg); return mrConsume; } MsgRouting AwtComponent::WmInputLangChange(UINT charset, HKL hKeyboardLayout)
*** 3658,3668 **** InitMessage(&msg, WM_IME_CHAR, character, MAKELPARAM(repCnt, flags)); jint modifiers = GetJavaModifiers(); SendKeyEventToFocusOwner(java_awt_event_KeyEvent_KEY_TYPED, ! TimeHelper::windowsToUTC(msg.time), java_awt_event_KeyEvent_VK_UNDEFINED, unicodeChar, modifiers, java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN, (jlong)0, &msg); return mrConsume; --- 3646,3656 ---- InitMessage(&msg, WM_IME_CHAR, character, MAKELPARAM(repCnt, flags)); jint modifiers = GetJavaModifiers(); SendKeyEventToFocusOwner(java_awt_event_KeyEvent_KEY_TYPED, ! TimeHelper::getMessageTimeUTC(), java_awt_event_KeyEvent_VK_UNDEFINED, unicodeChar, modifiers, java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN, (jlong)0, &msg); return mrConsume;
*** 3727,3737 **** } MSG msg; InitMessage(&msg, message, character, MAKELPARAM(repCnt, flags)); SendKeyEventToFocusOwner(java_awt_event_KeyEvent_KEY_TYPED, ! TimeHelper::windowsToUTC(msg.time), java_awt_event_KeyEvent_VK_UNDEFINED, unicodeChar, modifiers, java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN, (jlong)0, &msg); return mrConsume; --- 3715,3725 ---- } MSG msg; InitMessage(&msg, message, character, MAKELPARAM(repCnt, flags)); SendKeyEventToFocusOwner(java_awt_event_KeyEvent_KEY_TYPED, ! TimeHelper::getMessageTimeUTC(), java_awt_event_KeyEvent_VK_UNDEFINED, unicodeChar, modifiers, java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN, (jlong)0, &msg); return mrConsume;