We are currently migrating Bugzilla to GitHub issues.
Any changes made to the bug tracker now will be lost, so please do not post new bugs or make changes to them.
When we're done, all bug URLs will redirect to their equivalent location on the new bug tracker.

Bug 1188

Summary: RSHIFT and arrows cause spurious keyup/keydown events
Product: SDL Reporter: rmv
Component: eventsAssignee: Sam Lantinga <slouken>
Status: RESOLVED ENDOFLIFE QA Contact: Sam Lantinga <slouken>
Severity: minor    
Priority: P2    
Version: 1.2.14   
Hardware: x86   
OS: Windows (XP)   
Attachments: Prints keyup and keydown events.

Description rmv 2011-04-22 13:30:47 UTC
Created attachment 604 [details]
Prints keyup and keydown events.

Prerequisites:
SDL_VIDEODRIVER=directx
NUMLOCK disabled

If you press Right Shift and then press one of the arrow keys, SDL generates a spurious keyup event for the shift. When you release the arrow key, SDL generates a spurious keydown for the shift.

The spurious events don't appear if NUMLOCK is on, or if you use windib instead of directx. I've tested this on a laptop integrated keyboard and on a PS/2 keyboard on a desktop computer.

I've attached a short testing program. It prints keyup and keydown events (ESC quits). If you press right shift, then up, then release up, and then release shift, the output with the spurious events should be:

press   right shift
release right shift
press   up
release up
press   right shift
release right shift


The correct output without the spurious events should be:

press   right shift
press   up
release up
release right shift
Comment 1 Sam Lantinga 2011-12-29 01:38:27 UTC
Thanks for the report.  Have you investigated and have a patch for this issue?
Comment 2 Ryan C. Gordon 2015-08-25 09:38:23 UTC
Hello, and sorry if you're getting several copies of this message by email, since we are closing many bugs at once here.

We have decided to mark all SDL 1.2-related bugs as RESOLVED ENDOFLIFE, as we don't intend to work on SDL 1.2 any further, but didn't want to mark a large quantity of bugs as RESOLVED WONTFIX, to clearly show what was left unattended to and make it easily searchable.

Our current focus is on SDL 2.0.

If you are still having problems with an ENDOFLIFE bug, your absolute best option is to move your program to SDL2, as it will likely fix the problem by default, and give you access to modern platforms and tons of super-cool new features.

Failing that, we _will_ accept small patches to fix these issues, and put them in revision control, although we do not intend to do any further official 1.2 releases.

Failing that, please feel free to contact me directly by email (icculus@icculus.org) and we'll try to find some way to help you out of your situation.

Thank you,
--ryan.