diff options
author | Evan Tatarka <evan@tatarka.me> | 2014-09-14 18:12:37 -0400 |
---|---|---|
committer | Evan Tatarka <evan@tatarka.me> | 2014-09-15 19:11:23 -0400 |
commit | bcd3da1fcd802330817bb0795f5a563ca093409b (patch) | |
tree | 44d07de371f067e759fa78f1b83c490f1df90d37 | |
parent | 485e89715f163663bc53f6bf9f0b15bdd226f39a (diff) | |
download | glutin-bcd3da1fcd802330817bb0795f5a563ca093409b.tar.gz glutin-bcd3da1fcd802330817bb0795f5a563ca093409b.zip |
make x11 keyboard repeat detectable
-rw-r--r-- | src/x11/ffi.rs | 4 | ||||
-rw-r--r-- | src/x11/mod.rs | 10 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/x11/ffi.rs b/src/x11/ffi.rs index d127a27..2bd2075 100644 --- a/src/x11/ffi.rs +++ b/src/x11/ffi.rs @@ -1406,6 +1406,8 @@ extern "C" { pub fn glXMakeCurrent(dpy: *mut Display, drawable: GLXDrawable, ctx: GLXContext) -> Bool; pub fn glXSwapBuffers(dpy: *mut Display, drawable: GLXDrawable); + + pub fn XkbSetDetectableAutoRepeat(dpy: *mut Display, detectable: bool, supported_rtm: *mut bool) -> bool; } /* @@ -1462,4 +1464,4 @@ extern const char *glXGetClientString( Display *dpy, int name ); extern Display *glXGetCurrentDisplay( void ); -*/
\ No newline at end of file +*/ diff --git a/src/x11/mod.rs b/src/x11/mod.rs index 0710544..1b1e116 100644 --- a/src/x11/mod.rs +++ b/src/x11/mod.rs @@ -179,6 +179,16 @@ impl Window { ic }; + // Attempt to make keyboard input repeat detectable + unsafe { + let mut supported_ptr = false; + ffi::XkbSetDetectableAutoRepeat(display, true, &mut supported_ptr); + if !supported_ptr { + return Err(format!("XkbSetDetectableAutoRepeat failed")); + } + } + + // creating GL context let context = unsafe { let mut attributes = Vec::new(); |