X11: keyboard auto-repeat detection

This commit is contained in:
Flyinghead 2018-09-26 10:08:49 +02:00
parent 4547973561
commit 752d254982
1 changed files with 10 additions and 0 deletions

View File

@ -311,6 +311,16 @@ void input_x11_handle()
case KeyPress:
case KeyRelease:
{
if (e.type == KeyRelease && XEventsQueued(display, QueuedAfterReading))
{
XEvent nev;
XPeekEvent(display, &nev);
if (nev.type == KeyPress && nev.xkey.time == e.xkey.time &&
nev.xkey.keycode == e.xkey.keycode)
// Key wasnt actually released: auto repeat
continue;
}
// Dreamcast keyboard emulation
if (e.xkey.keycode == KEY_LSHIFT || e.xkey.keycode == KEY_RSHIFT)
if (e.type == KeyRelease)