From b4132c89197c12d078138bfad439be25fa6b0e51 Mon Sep 17 00:00:00 2001 From: Sean Burke Date: Wed, 16 Mar 2005 03:31:20 +0000 Subject: [PATCH] Fix repeating keyboard events --- stepmania/src/arch/InputHandler/InputHandler_X11.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/stepmania/src/arch/InputHandler/InputHandler_X11.cpp b/stepmania/src/arch/InputHandler/InputHandler_X11.cpp index dcb0bfe454..8f61183672 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_X11.cpp +++ b/stepmania/src/arch/InputHandler/InputHandler_X11.cpp @@ -8,6 +8,8 @@ #include #include +XKeyboardState prev_state; + static RageKeySym XSymToKeySym( int key ) { #define KEY_INV KEY_INVALID @@ -111,12 +113,19 @@ static RageKeySym XSymToKeySym( int key ) InputHandler_X11::InputHandler_X11() { + XKeyboardControl new_state; + new_state.auto_repeat_mode = AutoRepeatModeOff; X11Helper::Go(); X11Helper::OpenMask(KeyPressMask); X11Helper::OpenMask(KeyReleaseMask); + XGetKeyboardControl(X11Helper::Dpy,&prev_state); + XChangeKeyboardControl(X11Helper::Dpy,KBAutoRepeatMode,&new_state); } InputHandler_X11::~InputHandler_X11() { + XKeyboardControl end_state; + end_state.auto_repeat_mode = prev_state.global_auto_repeat; + XChangeKeyboardControl(X11Helper::Dpy,KBAutoRepeatMode,&end_state); X11Helper::CloseMask(KeyPressMask); X11Helper::CloseMask(KeyReleaseMask); X11Helper::Stop(); }