view docs/man3/SDLKey.3 @ 1629:ef4a796e7f24

Fixed bug #55 From Christian Walther: When writing my patch for #12, I ended up doing all sorts of changes to the way application/window activating/deactivating is handled in the Quartz backend, resulting in the attached patch. It does make the code a bit cleaner IMHO, but as it might be regarded as a case of "if it ain't broken, don't fix it" I'd like to hear other people's opinion about it. Please shout if some change strikes you as unnecessary or wrong, and I'll explain the reasons behind it. As far as I tested it, it does not introduce any new bugs, but I may well have missed some. - The most fundamental change (that triggered most of the others) is irrelevant for the usual single-window SDL applications, it only affects the people who are crazy enough to display other Cocoa windows alongside the SDL window (I'm actually doing this currently, although the additional window only displays debugging info and won't be present in the final product): Before, some things were done on the application becoming active, some on the window becoming key, and some on the window becoming main. Conceptually, all these actions belong to the window becoming key, so that's what I implemented. However, since in a single-window application these three events always happen together, the previous implementation "ain't broken". - This slightly changed the meaning of the SDL_APPMOUSEFOCUS flag from SDL_GetAppState(): Before, it meant "window is main and mouse is inside window (or mode is fullscreen)". Now, it means "window is key and mouse is inside window (or mode is fullscreen)". It makes more sense to me that way. (See http://developer.apple.com/documentation/Cocoa/Conceptual/WinPanel/Concepts/ChangingMainKeyWindow.html for a discussion of what key and main windows are.) The other two flags are unchanged: SDL_APPACTIVE = application is not hidden and window is not minimized, SDL_APPINPUTFOCUS = window is key (or mode is fullscreen). - As a side effect, the reorganization fixes the following two issues (and maybe others) (but they could also be fixed in less invasive ways): * A regression that was introduced in revision 1.42 of SDL_QuartzVideo.m (http://libsdl.org/cgi/cvsweb.cgi/SDL12/src/video/quartz/SDL_QuartzVideo.m.diff?r1=1.41&r2=1.42) (from half-desirable to undesirable behavior): Situation: While in windowed mode, hide the cursor using SDL_ShowCursor(SDL_DISABLE), move the mouse outside of the window so that the cursor becomes visible again, and SDL_SetVideoMode() to a fullscreen mode. What happened before revision 1.42: The cursor is visible, but becomes invisible as soon as the mouse is moved (half-desirable). What happens in revision 1.42 and after (including current CVS): The cursor is visible and stays visible (undesirable). What happens after my patch: The cursor is invisible from the beginning (desirable). * When the cursor is hidden and grabbed, switch away from the application using cmd-tab (which ungrabs and makes the cursor visible), move the cursor outside of the SDL window, then cmd-tab back to the application. In 1.2.8 and in the current CVS, the cursor is re-grabbed, but it stays visible (immovable in the middle of the window). With my patch, the cursor is correctly re-grabbed and hidden. (For some reason, it still doesn't work correctly if you switch back to the application using the dock instead of cmd-tab. I haven't been able to figure out why. I can step over [NSCursor hide] being called in the debugger, but it seems to have no effect.) - The patch includes my patch for #12 (it was easier to obtain using cvs diff that way). If you apply both of them, you will end up with 6 duplicate lines in SDL_QuartzEvents.m.
author Sam Lantinga <slouken@libsdl.org>
date Thu, 13 Apr 2006 14:17:48 +0000
parents 74212992fb08
children 546f7c1eb755
line wrap: on
line source

.TH "SDLKey" "3" "Wed 11 Oct 2000, 22:28" "SDL" "SDL API Reference"
.SH "NAME"
SDLKey\- SDL Keysym Definitions
.SH "SDL Keysym definitions"
.PP
\fBSDLKey               ASCII value    Common Name\fR
.nf
\f(CWSDLK_BACKSPACE       '\\b'           backspace
SDLK_TAB             '\\t'           tab
SDLK_CLEAR                          clear
SDLK_RETURN          '\\r'           return
SDLK_PAUSE                          pause
SDLK_ESCAPE          '^['           escape
SDLK_SPACE           ' '            space
SDLK_EXCLAIM         '!'            exclaim
SDLK_QUOTEDBL        '"'            quotedbl
SDLK_HASH            '#'            hash
SDLK_DOLLAR          '$'            dollar
SDLK_AMPERSAND       '&'            ampersand
SDLK_QUOTE           '''            quote
SDLK_LEFTPAREN       '('            left parenthesis
SDLK_RIGHTPAREN      ')'            right parenthesis
SDLK_ASTERISK        '*'            asterisk
SDLK_PLUS            '+'            plus sign
SDLK_COMMA           ','            comma
SDLK_MINUS           '-'            minus sign
SDLK_PERIOD          '.'            period
SDLK_SLASH           '/'            forward slash
SDLK_0               '0'            0
SDLK_1               '1'            1
SDLK_2               '2'            2
SDLK_3               '3'            3
SDLK_4               '4'            4
SDLK_5               '5'            5
SDLK_6               '6'            6
SDLK_7               '7'            7
SDLK_8               '8'            8
SDLK_9               '9'            9
SDLK_COLON           ':'            colon
SDLK_SEMICOLON       ';'            semicolon
SDLK_LESS            '<'            less-than sign
SDLK_EQUALS          '='            equals sign
SDLK_GREATER         '>'            greater-than sign
SDLK_QUESTION        '?'            question mark
SDLK_AT              '@'            at
SDLK_LEFTBRACKET     '['            left bracket
SDLK_BACKSLASH       '\\'            backslash
SDLK_RIGHTBRACKET    ']'            right bracket
SDLK_CARET           '^'            caret
SDLK_UNDERSCORE      '_'            underscore
SDLK_BACKQUOTE       '`'            grave
SDLK_a               'a'            a
SDLK_b               'b'            b
SDLK_c               'c'            c
SDLK_d               'd'            d
SDLK_e               'e'            e
SDLK_f               'f'            f
SDLK_g               'g'            g
SDLK_h               'h'            h
SDLK_i               'i'            i
SDLK_j               'j'            j
SDLK_k               'k'            k
SDLK_l               'l'            l
SDLK_m               'm'            m
SDLK_n               'n'            n
SDLK_o               'o'            o
SDLK_p               'p'            p
SDLK_q               'q'            q
SDLK_r               'r'            r
SDLK_s               's'            s
SDLK_t               't'            t
SDLK_u               'u'            u
SDLK_v               'v'            v
SDLK_w               'w'            w
SDLK_x               'x'            x
SDLK_y               'y'            y
SDLK_z               'z'            z
SDLK_DELETE          '^?'           delete
SDLK_KP0                            keypad 0
SDLK_KP1                            keypad 1
SDLK_KP2                            keypad 2
SDLK_KP3                            keypad 3
SDLK_KP4                            keypad 4
SDLK_KP5                            keypad 5
SDLK_KP6                            keypad 6
SDLK_KP7                            keypad 7
SDLK_KP8                            keypad 8
SDLK_KP9                            keypad 9
SDLK_KP_PERIOD       '.'            keypad period
SDLK_KP_DIVIDE       '/'            keypad divide
SDLK_KP_MULTIPLY     '*'            keypad multiply
SDLK_KP_MINUS        '-'            keypad minus
SDLK_KP_PLUS         '+'            keypad plus
SDLK_KP_ENTER        '\\r'           keypad enter
SDLK_KP_EQUALS       '='            keypad equals
SDLK_UP                             up arrow
SDLK_DOWN                           down arrow
SDLK_RIGHT                          right arrow
SDLK_LEFT                           left arrow
SDLK_INSERT                         insert
SDLK_HOME                           home
SDLK_END                            end
SDLK_PAGEUP                         page up
SDLK_PAGEDOWN                       page down
SDLK_F1                             F1
SDLK_F2                             F2
SDLK_F3                             F3
SDLK_F4                             F4
SDLK_F5                             F5
SDLK_F6                             F6
SDLK_F7                             F7
SDLK_F8                             F8
SDLK_F9                             F9
SDLK_F10                            F10
SDLK_F11                            F11
SDLK_F12                            F12
SDLK_F13                            F13
SDLK_F14                            F14
SDLK_F15                            F15
SDLK_NUMLOCK                        numlock
SDLK_CAPSLOCK                       capslock
SDLK_SCROLLOCK                      scrollock
SDLK_RSHIFT                         right shift
SDLK_LSHIFT                         left shift
SDLK_RCTRL                          right ctrl
SDLK_LCTRL                          left ctrl
SDLK_RALT                           right alt
SDLK_LALT                           left alt
SDLK_RMETA                          right meta
SDLK_LMETA                          left meta
SDLK_LSUPER                         left windows key
SDLK_RSUPER                         right windows key
SDLK_MODE                           mode shift
SDLK_HELP                           help
SDLK_PRINT                          print-screen
SDLK_SYSREQ                         SysRq
SDLK_BREAK                          break
SDLK_MENU                           menu
SDLK_POWER                          power
SDLK_EURO                           euro\fR
.fi


.SH "SDL modifier definitions"
.PP
\fBSDL Modifier    Meaning\fR
.nf
\f(CWKMOD_NONE       No modifiers applicable
KMOD_NUM        Numlock is down
KMOD_CAPS       Capslock is down
KMOD_LCTRL      Left Control is down
KMOD_RCTRL      Right Control is down
KMOD_RSHIFT     Right Shift is down
KMOD_LSHIFT     Left Shift is down
KMOD_RALT       Right Alt is down
KMOD_LALT       Left Alt is down
KMOD_CTRL       A Control key is down
KMOD_SHIFT      A Shift key is down
KMOD_ALT        An Alt key is down\fR
.fi