Don't discard key press / key release events if the keys are different
authorDima Ryazanov <dima@gmail.com>
Wed, 17 Aug 2011 00:25:32 +0000 (17:25 -0700)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 17 Aug 2011 01:32:54 +0000 (21:32 -0400)
Keystrokes get dropped if the user types too quickly.

compositor/compositor-x11.c

index 9b255a4..0825f1a 100644 (file)
@@ -468,7 +468,8 @@ x11_compositor_handle_event(int fd, uint32_t mask, void *data)
                        key_release = (xcb_key_press_event_t *) prev;
                        key_press = (xcb_key_press_event_t *) event;
                        if ((event->response_type & ~0x80) == XCB_KEY_PRESS &&
-                           key_release->time == key_press->time) {
+                           key_release->time == key_press->time &&
+                           key_release->detail == key_press->detail) {
                                /* Don't deliver the held key release
                                 * event or the new key press event. */
                                free(event);