From 90e136b65a10d8daf8c3a2df6cc193e55a63722c Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Tue, 29 Jan 2013 21:27:57 +0100
Subject: Fix Bug 678: Deliver key-char value for printable chars on all
 KeyEventListener (-> On Windows as well)

The following is observed, where t0 and t1 refer to subsequent different timestamps:
  NEWT delivery order:
      PRESSED (t0), RELEASED (t1) and TYPED (t1)

  WINDOWS delivery order:
      PRESSED (t0), TYPED (t0) and RELEASED (t1)
  Windows Auto-Repeat:
      PRESSED (t0), TYPED (t0)

Hence we changed the event reorder-code in NEWT to trigger NEWT-PRESSED on
Windows-TYPED for printable chars, assuring key-char values on all listener callbacks.

- KeyEvent.getKeyChar(): Removed disclaimer dedicated for Windows
- Keyevent.isActionKey(): Completed for all NEWT non-printable action keys; Added static variant
- Keyevent.isPrintableKey(): NEW: returns !isModifierKey(keyCode) && !isActionKey(keyCode) ; With static variant

- Windows WindowDriver:
  - EVENT_KEY_PRESSED handles non-printable chars only
  - EVENT_KEY_TYPE handles printable chars only
  - Native: VK_DELETE passes keyCode

- Unit tests: Wait for completion 1s -> 2s
---
 src/newt/native/WindowsWindow.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'src/newt/native/WindowsWindow.c')

diff --git a/src/newt/native/WindowsWindow.c b/src/newt/native/WindowsWindow.c
index 17b93cfce..24d513c68 100644
--- a/src/newt/native/WindowsWindow.c
+++ b/src/newt/native/WindowsWindow.c
@@ -605,7 +605,7 @@ static int WmKeyDown(JNIEnv *env, jobject window, UINT wkey, WORD repCnt, BYTE s
         (*env)->CallVoidMethod(env, window, sendKeyEventID,
                                (jint) EVENT_KEY_TYPED,
                                modifiers,
-                               (jint) 0,
+                               (jint) jkey,
                                (jchar) '\177');
     }
 
-- 
cgit v1.2.3