From 401a3a859f1c4b22aa8cb6be7234b9d9c989ac59 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Sat, 24 Jul 2004 22:17:03 +0000 Subject: [PATCH] Make setting keyboard rate use own X connection --- src/native/linux/org_lwjgl_opengl_Display.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/native/linux/org_lwjgl_opengl_Display.cpp b/src/native/linux/org_lwjgl_opengl_Display.cpp index d8473561..45507d22 100644 --- a/src/native/linux/org_lwjgl_opengl_Display.cpp +++ b/src/native/linux/org_lwjgl_opengl_Display.cpp @@ -166,7 +166,13 @@ static void updateInputGrab(void) { static void setRepeatMode(int mode) { XKeyboardControl repeat_mode; repeat_mode.auto_repeat_mode = mode; - XChangeKeyboardControl(getDisplay(), KBAutoRepeatMode, &repeat_mode); + Display *disp = XOpenDisplay(NULL); + if (disp == NULL) { + printfDebug("Could not open display to set repeat mode\n"); + return; + } + XChangeKeyboardControl(disp, KBAutoRepeatMode, &repeat_mode); + XCloseDisplay(disp); } bool releaseInput(void) { @@ -281,11 +287,11 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Display_nSetTitle } static void destroyWindow(void) { - setRepeatMode(AutoRepeatModeDefault); if (USEGLX13) glXDestroyWindow(getDisplay(), glx_window); XDestroyWindow(getDisplay(), current_win); XFreeColormap(getDisplay(), cmap); + setRepeatMode(AutoRepeatModeDefault); } static bool createWindow(JNIEnv* env, int width, int height) {