From 14b68631c91484d0d6ca3aab48c13c9169586c0d Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Fri, 10 Nov 2006 15:12:49 +0000 Subject: [PATCH] Windows: Use WindowsKeyboard in WindowsAWTInput to ensure keyboard input. --- .../org/lwjgl/opengl/WindowsAWTInput.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/java/org/lwjgl/opengl/WindowsAWTInput.java b/src/java/org/lwjgl/opengl/WindowsAWTInput.java index 2933729f..fa1d19fe 100644 --- a/src/java/org/lwjgl/opengl/WindowsAWTInput.java +++ b/src/java/org/lwjgl/opengl/WindowsAWTInput.java @@ -54,6 +54,7 @@ final class WindowsAWTInput extends AbstractAWTInput { private long cached_hwnd; private WindowsMouse cached_mouse; + private WindowsKeyboard cached_keyboard; private boolean has_grabbed; public WindowsAWTInput(AWTGLCanvas canvas) throws LWJGLException { @@ -81,7 +82,9 @@ final class WindowsAWTInput extends AbstractAWTInput { cached_hwnd = hwnd; if (cached_mouse != null) cached_mouse.destroy(); - cached_mouse = new WindowsMouse(WindowsDisplay.createDirectInput(), hwnd); + WindowsDirectInput dinput = WindowsDisplay.createDirectInput(); + cached_mouse = new WindowsMouse(dinput, hwnd); + cached_keyboard = new WindowsKeyboard(dinput, hwnd); } if (isGrabbed() && getCanvas().getCursor() != blank_cursor) { cached_cursor = getCanvas().getCursor(); @@ -144,4 +147,20 @@ final class WindowsAWTInput extends AbstractAWTInput { } else super.readMouse(buffer); } + + public synchronized void readKeyboard(ByteBuffer buffer) { + if (isGrabbed()) { + if (cached_keyboard != null) + cached_keyboard.read(buffer); + } else + super.readKeyboard(buffer); + } + + public synchronized void pollKeyboard(ByteBuffer keyDownBuffer) { + if (isGrabbed()) { + if (cached_keyboard != null) + cached_keyboard.poll(keyDownBuffer); + } else + super.pollKeyboard(keyDownBuffer); + } }