From: Daniel Stone Date: Fri, 22 Jun 2012 12:21:31 +0000 (+0100) Subject: Ignore repeat keys in notify_key X-Git-Tag: 0.94.90~24 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c6587ea1553f4b8f58a70047fba91f203e03ecfa;p=profile%2Fivi%2Fweston.git Ignore repeat keys in notify_key Let compositors just blithely post through every event they get, including repeating keys. Signed-off-by: Daniel Stone --- diff --git a/src/compositor.c b/src/compositor.c index d914b67..52ef89e 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -1858,8 +1858,12 @@ notify_key(struct wl_seat *seat, uint32_t time, uint32_t key, mods = update_modifier_state(ws, key, state); end = seat->keyboard->keys.data + seat->keyboard->keys.size; for (k = seat->keyboard->keys.data; k < end; k++) { - if (*k == key) + if (*k == key) { + /* Ignore server-generated repeats. */ + if (state == WL_KEYBOARD_KEY_STATE_PRESSED) + return; *k = *--end; + } } seat->keyboard->keys.size = (void *) end - seat->keyboard->keys.data; if (state == WL_KEYBOARD_KEY_STATE_PRESSED) {