diff options
author | Campbell Barton <ideasman42@gmail.com> | 2008-04-22 18:32:45 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2008-04-22 18:32:45 +0400 |
commit | 6672bb16cf9a8cc6ab7820bf30517cf6fefde1cf (patch) | |
tree | 566a089e6f97d5dd33f90f3ce7d2600da6669e3d | |
parent | bee5b1137e8594146df3536a023fea0ab78bb508 (diff) |
use detectable autorepeat for X11,
this way, holding a key will only give multiple down events, father then down,up,down,up.... etc.
This is needed for apricot so they can play games in blenders :)
-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 |