README.txt
author Sam Lantinga <slouken@libsdl.org>
Sat, 27 Jul 2013 03:20:09 -0700
changeset 7526 6c0f0280149c
parent 7359 96ac247b672e
child 7599 bd0c15431dc9
permissions -rw-r--r--
Fixed bug 1272 - Bogus numlock key up/down events being reported on MacOS X Vern Jensen The problem is that in certain situations I'm getting THREE keyUp/keyDown events when I push certain keys. In my event code I added: case SDL_KEYUP: printf("SDL KeyScanCode for KEYUP event: %d\n", event->key.keysym.scancode ); … and case SDL_KEYDOWN: printf("SDL KeyScanCode for KEYDOWN event: %d\n", event->key.keysym.scancode ); … The result of one test run where I push 2 keys and then release them is this: SDL KeyScanCode for KEYDOWN event: 92 // Pushed keypad 4 SDL KeyScanCode for KEYDOWN event: 83 // Pushed left shift SDL KeyScanCode for KEYUP event: 83 SDL KeyScanCode for KEYDOWN event: 225 SDL KeyScanCode for KEYUP event: 92 // Released keypad 4 SDL KeyScanCode for KEYDOWN event: 83 SDL KeyScanCode for KEYUP event: 83 SDL KeyScanCode for KEYUP event: 225 // Released left shift There *should* be only a total of 4 events above… 2 for each key being pushed, and 2 for each being released. But instead some bogus events for numlock being pushed/released are sent from SDL. These events did not occur. I did not push numlock. The value above for numlock is 83. Comments above show when I pushed each key. As you can see, when I push left shift, THREE events are instantly sent to my application, keyDown and then keyUp for numlock, and then the valid event for left shift (the key that was actually pushed). You could replace keypad 4 with pretty much any keyPad key and it'll still happen. You can also replace it with any arrow key and it'll happen. However, when trying it with normal letter keys on the main keyboard it didn't. It happens with other modifier keys too, not just left shift. The order in which the keys are pressed matter. For instance, if I do: 1) keypad 4 2) left shift 3) release left shift 4) release keypad 4 Then at step 2, I get the 3 events above (when there should be only one), but steps 3 and 4 work properly… I don't get extra keyUp/keyDown events for steps 3 or 4. Thereas if the order of steps 3 and 4 are reversed, I get the bogus extra events for numlock. Also, the problem can occur even when pushing just a single key by itself. If I push left shift, then keypad 4, then release left shift, then release keypad 4, then the following push of left shift will cause the bug. If I continue pushing and releasing left shift though, it won't happen again until I again involve keypad keys. --- Sam Lantinga According to the Apple documentation, NSNumericPadKeyMask is set for any arrow or numeric keypad event. Indeed this is what's happening. I verified that we get the correct events for the numlock key and the mod state gets set correcly, so it should be safe to remove this bogus code.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7222
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
     1
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
     2
                         Simple DirectMedia Layer
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
     3
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
     4
                                  (SDL)
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
     5
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
     6
                                Version 2.0
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
     7
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
     8
---
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
     9
http://www.libsdl.org/
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    10
7359
96ac247b672e Updated the README to match the new website text
Sam Lantinga <slouken@libsdl.org>
parents: 7330
diff changeset
    11
Simple DirectMedia Layer is a cross-platform development library designed
96ac247b672e Updated the README to match the new website text
Sam Lantinga <slouken@libsdl.org>
parents: 7330
diff changeset
    12
to provide low level access to audio, keyboard, mouse, joystick, and graphics
96ac247b672e Updated the README to match the new website text
Sam Lantinga <slouken@libsdl.org>
parents: 7330
diff changeset
    13
hardware via OpenGL and DirectX. It is used by video playback software,
96ac247b672e Updated the README to match the new website text
Sam Lantinga <slouken@libsdl.org>
parents: 7330
diff changeset
    14
emulators, and popular games including Valve's award winning catalog
96ac247b672e Updated the README to match the new website text
Sam Lantinga <slouken@libsdl.org>
parents: 7330
diff changeset
    15
and many Humble Bundle games.
7222
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    16
7359
96ac247b672e Updated the README to match the new website text
Sam Lantinga <slouken@libsdl.org>
parents: 7330
diff changeset
    17
The current version supports Windows, Mac OS X, Linux, iOS, and Android.
96ac247b672e Updated the README to match the new website text
Sam Lantinga <slouken@libsdl.org>
parents: 7330
diff changeset
    18
The code contains support for other operating systems but those are not
96ac247b672e Updated the README to match the new website text
Sam Lantinga <slouken@libsdl.org>
parents: 7330
diff changeset
    19
officially supported.
7222
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    20
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    21
SDL is written in C, but works with C++ natively, and has bindings to
7359
96ac247b672e Updated the README to match the new website text
Sam Lantinga <slouken@libsdl.org>
parents: 7330
diff changeset
    22
several other languages, including C#, Python and more in progress.
7222
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    23
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    24
This library is distributed under the zlib license, which can be found
7330
95a9e82b5414 Updated the name of the copyright file
Sam Lantinga <slouken@libsdl.org>
parents: 7241
diff changeset
    25
in the file "COPYING.txt".
7222
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    26
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    27
The best way to learn how to use SDL is to check out the header files in
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    28
the "include" subdirectory and the programs in the "test" subdirectory.
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    29
The header files and test programs are well commented and always up to date.
7241
28602f5ca96d Fixed recently deleted Ms in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 7222
diff changeset
    30
More documentation and FAQs are available online at:
7222
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    31
	http://wiki.libsdl.org/
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    32
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    33
If you need help with the library, or just want to discuss SDL related
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    34
issues, you can join the developers mailing list:
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    35
	http://www.libsdl.org/mailing-list.php
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    36
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    37
Enjoy!
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    38
	Sam Lantinga				(slouken@libsdl.org)
2435b221d77d Renamed documentation files to .txt and converted them to DOS line endings so they would open properly on all systems.
Sam Lantinga <slouken@libsdl.org>
parents: 6987
diff changeset
    39