Index: g15daemon/g15daemon/g15_uinput.c =================================================================== --- g15daemon/g15daemon/g15_uinput.c (revision 526) +++ g15daemon/g15daemon/g15_uinput.c (working copy) @@ -106,6 +106,14 @@ event.value = G15KEY_DOWN; write (uinp_fd, &event, sizeof(event)); + + /* Need to write sync event */ + memset(&event, 0, sizeof(event)); + event.type = EV_SYN; + event.code = SYN_REPORT; + event.value = 0; + write(uinp_fd, &event, sizeof(event)); + } void g15_uinput_keyup(unsigned char code) @@ -118,6 +126,13 @@ event.value = G15KEY_UP; write (uinp_fd, &event, sizeof(event)); + + /* Need to write sync event */ + memset(&event, 0, sizeof(event)); + event.type = EV_SYN; + event.code = SYN_REPORT; + event.value = 0; + write(uinp_fd, &event, sizeof(event)); } #endif