diff options
author | Bastien Dejean <nihilhill@gmail.com> | 2013-01-02 21:13:12 +0100 |
---|---|---|
committer | Michael Stapelberg <michael@stapelberg.de> | 2013-02-24 18:10:57 +0100 |
commit | 3d7b2ba8299cb2d0e2f5e58f61c1a60625f2d015 (patch) | |
tree | 0811df647a2c7bb3532ebb7cdd9df4d9222d9488 | |
parent | e527fdc914d4b4fa816ea9e563c6abf6505b39d3 (diff) | |
download | util-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.c | 5 |
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; } } } |