From 73a8dae82f2fbb46396499e80f4f9212c775d18a Mon Sep 17 00:00:00 2001 From: JengHyun Kang Date: Mon, 25 Apr 2016 18:05:46 +0900 Subject: [PATCH] Add a new API to set key repeat Change-Id: If1644c4c6575b4eb7cadb8c1e11147651013d8ef --- include/xkbcommon/xkbcommon.h | 4 ++++ src/keymap.c | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/include/xkbcommon/xkbcommon.h b/include/xkbcommon/xkbcommon.h index dbc39b9..2c1eb12 100644 --- a/include/xkbcommon/xkbcommon.h +++ b/include/xkbcommon/xkbcommon.h @@ -1304,6 +1304,10 @@ xkb_keymap_key_get_syms_by_level(struct xkb_keymap *keymap, int xkb_keymap_key_repeats(struct xkb_keymap *keymap, xkb_keycode_t key); +int +xkb_keymap_key_set_repeats(struct xkb_keymap *keymap, xkb_keycode_t kc, int enable); + + /** @} */ /** diff --git a/src/keymap.c b/src/keymap.c index 0291aed..5aed2a6 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -583,3 +583,17 @@ xkb_keymap_key_repeats(struct xkb_keymap *keymap, xkb_keycode_t kc) return key->repeats; } + +XKB_EXPORT int +xkb_keymap_key_set_repeats(struct xkb_keymap *keymap, xkb_keycode_t kc, int enable) +{ + struct xkb_key *key = XkbKey(keymap, kc); + + if (!key) + return 0; + + key->repeats = !!enable; + key->explicit |= EXPLICIT_REPEAT; + + return 1; +} -- 2.7.4