From 2d436e3231bdc3a08b951a81ebe869bdbbdc49d2 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Thu, 31 May 2007 08:52:55 +0000 Subject: [PATCH] Windows: Fix repeated character codes --- src/java/org/lwjgl/opengl/WindowsDisplay.java | 5 ++--- src/java/org/lwjgl/opengl/WindowsKeyboard.java | 7 ++++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/java/org/lwjgl/opengl/WindowsDisplay.java b/src/java/org/lwjgl/opengl/WindowsDisplay.java index 38e3229f..a3ea2007 100644 --- a/src/java/org/lwjgl/opengl/WindowsDisplay.java +++ b/src/java/org/lwjgl/opengl/WindowsDisplay.java @@ -599,10 +599,9 @@ final class WindowsDisplay implements DisplayImplementation { private void handleChar(long wParam, long lParam, long millis) { byte previous_state = (byte)((lParam >>> 30) & 0x1); byte state = (byte)(1 - ((lParam >>> 31) & 0x1)); - if (state == previous_state) - return; // Auto-repeat message + boolean repeat = state == previous_state; if (keyboard != null) - keyboard.handleChar((int)(wParam & 0xFF), millis); + keyboard.handleChar((int)(wParam & 0xFF), millis, repeat); } private void handleKeyButton(long wParam, long lParam, long millis) { diff --git a/src/java/org/lwjgl/opengl/WindowsKeyboard.java b/src/java/org/lwjgl/opengl/WindowsKeyboard.java index c22be229..e1138266 100644 --- a/src/java/org/lwjgl/opengl/WindowsKeyboard.java +++ b/src/java/org/lwjgl/opengl/WindowsKeyboard.java @@ -161,12 +161,13 @@ final class WindowsKeyboard { retained_millis = millis; retained_char = 0; retained_repeat = repeat; -// translate(virt_key, event_state, millis*1000000); } - public void handleChar(int event_char, long millis) { + public void handleChar(int event_char, long millis, boolean repeat) { + if (has_retained_event && retained_char != 0) + flushRetained(); if (!has_retained_event) { - putEvent(0, (byte)0, event_char, millis, false); + putEvent(0, (byte)0, event_char, millis, repeat); } else retained_char = event_char; }