summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Dejean <nihilhill@gmail.com>2013-01-02 21:13:12 +0100
committerMichael Stapelberg <michael@stapelberg.de>2013-02-24 18:10:57 +0100
commit3d7b2ba8299cb2d0e2f5e58f61c1a60625f2d015 (patch)
tree0811df647a2c7bb3532ebb7cdd9df4d9222d9488
parente527fdc914d4b4fa816ea9e563c6abf6505b39d3 (diff)
downloadutil-keysyms-3d7b2ba8299cb2d0e2f5e58f61c1a60625f2d015.tar.gz
Duplicate keycodes are unnecessary
When multiple keysym matches occur on one keycode, we do not want to return that keycode multiple times. Signed-off-by: Bastien Dejean <nihilhill@gmail.com> Signed-off-by: Michael Stapelberg <michael+xcb@stapelberg.de>
-rw-r--r--keysyms/keysyms.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/keysyms/keysyms.c b/keysyms/keysyms.c
index 7584ccc..daa863f 100644
--- a/keysyms/keysyms.c
+++ b/keysyms/keysyms.c
@@ -251,8 +251,8 @@ xcb_key_symbols_get_keycode(xcb_key_symbols_t *syms,
min = xcb_get_setup(syms->c)->min_keycode;
max = xcb_get_setup(syms->c)->max_keycode;
- for(j = 0; j < syms->u.reply->keysyms_per_keycode; j++)
- for(i = min; i && i <= max; i++)
+ for(i = min; i && i <= max; i++)
+ for(j = 0; j < syms->u.reply->keysyms_per_keycode; j++)
{
ks = xcb_key_symbols_get_keysym(syms, i, j);
if(ks == keysym)
@@ -270,6 +270,7 @@ xcb_key_symbols_get_keycode(xcb_key_symbols_t *syms,
result = result_np;
result[nresult - 1] = i;
result[nresult] = XCB_NO_SYMBOL;
+ break;
}
}
}