diff options
-rw-r--r-- | intern/ghost/intern/GHOST_SystemX11.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index d6868d143dd..ff1bf51bbb5 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -46,6 +46,7 @@ #include <X11/Xatom.h> #include <X11/keysym.h> +#include <X11/XKBlib.h> /* allow detectable autorepeate */ #ifdef __sgi @@ -111,6 +112,18 @@ GHOST_SystemX11( } m_start_time = GHOST_TUns64(tv.tv_sec*1000 + tv.tv_usec/1000); + + + /* use detectable autorepeate, mac and windows also do this */ + int use_xkb; + int xkb_opcode, xkb_event, xkb_error; + int xkb_major = XkbMajorVersion, xkb_minor = XkbMinorVersion; + + use_xkb = XkbQueryExtension(m_display, &xkb_opcode, &xkb_event, &xkb_error, &xkb_major, &xkb_minor); + if (use_xkb) { + XkbSetDetectableAutoRepeat(m_display, true, NULL); + } + } GHOST_TSuccess |