Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 610326

Summary: media-libs/libsdl2-2.0.5: Holding key down sends keyup events
Product: Gentoo Linux Reporter: Bryan Baldwin <bryan>
Component: Current packagesAssignee: Gentoo Games <games>
Status: RESOLVED FIXED    
Severity: major CC: gentoo-bugs
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
URL: https://bugzilla.libsdl.org/show_bug.cgi?id=3472
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: Fix double event and key repeat flag without fcitx or ibus headers

Description Bryan Baldwin 2017-02-20 23:41:28 UTC
Pressing and holding down a key was not producing events with the repeat flag set. It produced pairs of keydown & pressed - keyup & released events without the repeat flag set. These events continued to be send long after the key was physically released.

Reproducible: Always

Steps to Reproduce:
1. Write a game that uses SDL2 to get keyboard input
2. Push some keys on your keyboard
Actual Results:  
TS: 4238  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 4238  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4238  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 4265  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4266  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 4305  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 4305  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4305  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 4332  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4332  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 4372  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 4372  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4372  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 4399  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4399  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 4439  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 4439  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4439  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 4467  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4467  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 4467  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4506  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 4533  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4567  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 4606  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4640  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 4667  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4700  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 4739  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4772  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 4800  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4833  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 4873  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4906  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 4933  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 4967  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 5005  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0
TS: 5039  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 5066  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0

Expected Results:  
TS: 5383  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 0
TS: 5885  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 5919  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 5952  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 5985  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6018  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6051  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6084  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6118  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6151  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6184  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6217  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6250  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6285  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6317  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6350  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6383  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6417  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6450  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6483  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6516  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6551  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6584  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6617  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6650  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6683  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6717  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6751  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6785  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6818  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6851  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6885  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6918  KeyUp: 0  KeyDwn: 1 Pressed: 1 Release: 0 Repeat: 1
TS: 6952  KeyUp: 1  KeyDwn: 0 Pressed: 0 Release: 1 Repeat: 0

This is affecting at least versions libsdl2 versions 2.0.4 and 2.0.5.

This is a known problem upstream and a patch has been released
https://bugzilla-attachments.libsdl.org/attachment.cgi?id=2594

I have tested this patch locally on my system and can confirm it works, as shown in "Expected Results." Please update and distribute this patch downstream ASAP.
Comment 1 Bryan Baldwin 2017-02-20 23:43:38 UTC
Created attachment 464466 [details, diff]
Fix double event and key repeat flag without fcitx or ibus headers
Comment 2 Bryan Baldwin 2017-02-21 18:07:44 UTC
CORRECTION - bug is only effecting v2.0.5 :P
Comment 3 Pacho Ramos gentoo-dev 2018-02-28 15:10:38 UTC
should be fixed in 2.0.7