From 374334e7d33448521c0aa4baf9fb1c4722ba3691 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Sat, 8 Mar 2003 18:47:34 +0000 Subject: [PATCH] Disable linux key repeat while Keyboard is created - match win32 behavior --- src/native/linux/org_lwjgl_input_Keyboard.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/native/linux/org_lwjgl_input_Keyboard.cpp b/src/native/linux/org_lwjgl_input_Keyboard.cpp index 1356faa0..e652a662 100644 --- a/src/native/linux/org_lwjgl_input_Keyboard.cpp +++ b/src/native/linux/org_lwjgl_input_Keyboard.cpp @@ -123,6 +123,11 @@ static void updateGrab(void) { } } +static void setRepeatMode(int mode) { + XKeyboardControl repeat_mode; + repeat_mode.auto_repeat_mode = mode; + XChangeKeyboardControl(disp, KBAutoRepeatMode, &repeat_mode); +} /* * Class: org_lwjgl_input_Keyboard * Method: nCreate @@ -159,6 +164,7 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_input_Keyboard_nCreate memset(key_buf, 0, KEYBOARD_SIZE*sizeof(unsigned char)); created = true; + setRepeatMode(AutoRepeatModeOff); return JNI_TRUE; } @@ -173,6 +179,7 @@ JNIEXPORT void JNICALL Java_org_lwjgl_input_Keyboard_nDestroy if (keyboard_grabbed) ungrabKeyboard(); created = false; + setRepeatMode(AutoRepeatModeDefault); } static XKeyEvent *nextEventElement(void) {