annotate src/SDL_loadso.c @ 1348:40d0975c1769

Date: Mon, 6 Feb 2006 11:41:04 -0500 From: "mystml@adinet.com.uy" Subject: [SDL] ALT-F4 using DirectX My game isn't getting SDL_QUIT when I press ALT-F4 using the DirectX driver; it does get SDL_QUIT when I press the red X in the window. I tracked this down to DX5_HandleMessage() in SDL_dx5events.c; WM_SYSKEYDOWN is being trapped and ignored which causes Windows not to post a WM_CLOSE, hence no SDL_QUIT is being generated. The relevant code is this : /* The keyboard is handled via DirectInput */ case WM_SYSKEYUP: case WM_SYSKEYDOWN: case WM_KEYUP: case WM_KEYDOWN: { /* Ignore windows keyboard messages */; } return(0); If I comment the WM_SYSKEYDOWN case, it falls through DefWindowProc() and ALT-F4 starts working again. I'm not sure about the best way to fix this. One option is handling ALT-F4 as a particular case somehow, but doesn't sound good. Another option would be to handle WM_SYSKEYDOWN separately and breaking instead of returning 0, so processing falls through and goes to DefWindowProc which does The Right Thing (TM). This seems to be the minimal change that makes ALT-F4 work and normal keyboard input continues to work. Does this sound reasonable? Am I overlooking anything? Do I submit a patch? --Gabriel
author Sam Lantinga <slouken@libsdl.org>
date Wed, 08 Feb 2006 17:19:43 +0000
parents c9b51268668f
children
rev   line source
294
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
1 /*
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
2 SDL - Simple DirectMedia Layer
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1236
diff changeset
3 Copyright (C) 1997-2006 Sam Lantinga
294
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
4
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
5 This library is free software; you can redistribute it and/or
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1236
diff changeset
6 modify it under the terms of the GNU Lesser General Public
294
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
7 License as published by the Free Software Foundation; either
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1236
diff changeset
8 version 2.1 of the License, or (at your option) any later version.
294
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
9
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
10 This library is distributed in the hope that it will be useful,
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1236
diff changeset
13 Lesser General Public License for more details.
294
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
14
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1236
diff changeset
15 You should have received a copy of the GNU Lesser General Public
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1236
diff changeset
16 License along with this library; if not, write to the Free Software
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1236
diff changeset
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
294
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
18
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
19 Sam Lantinga
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
20 slouken@libsdl.org
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
21 */
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
22
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
23 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
24 /* System dependent library loading routines */
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
25
1236
ed252764287a Minor bit of debug output added to dynamic X11 code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1190
diff changeset
26 /*
ed252764287a Minor bit of debug output added to dynamic X11 code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1190
diff changeset
27 * Mac OS X >= 10.3 are guaranteed to have dlopen support in a system
ed252764287a Minor bit of debug output added to dynamic X11 code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1190
diff changeset
28 * framework, which means we don't have to roll our own on non-PowerPC
ed252764287a Minor bit of debug output added to dynamic X11 code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1190
diff changeset
29 * systems to guarantee compatibility (x86 Macs started at 10.4). --ryan.
ed252764287a Minor bit of debug output added to dynamic X11 code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1190
diff changeset
30 */
ed252764287a Minor bit of debug output added to dynamic X11 code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1190
diff changeset
31 #if ( (defined(MACOSX)) && (!defined(__POWERPC__)) )
ed252764287a Minor bit of debug output added to dynamic X11 code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1190
diff changeset
32 # define USE_DLOPEN 1
ed252764287a Minor bit of debug output added to dynamic X11 code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1190
diff changeset
33 #endif
ed252764287a Minor bit of debug output added to dynamic X11 code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1190
diff changeset
34
1173
e9cf8c1b4590 Split up src/SDL_loadso.c into platform directories.
Ryan C. Gordon <icculus@icculus.org>
parents: 1152
diff changeset
35 /* !!! FIXME: includes so I don't have to update all the project files... */
e9cf8c1b4590 Split up src/SDL_loadso.c into platform directories.
Ryan C. Gordon <icculus@icculus.org>
parents: 1152
diff changeset
36 #define SDL_INTERNAL_BUILDING_LOADSO 1
e9cf8c1b4590 Split up src/SDL_loadso.c into platform directories.
Ryan C. Gordon <icculus@icculus.org>
parents: 1152
diff changeset
37 #if defined(USE_DUMMY_LOADSO)
e9cf8c1b4590 Split up src/SDL_loadso.c into platform directories.
Ryan C. Gordon <icculus@icculus.org>
parents: 1152
diff changeset
38 # include "loadso/dummy/SDL_loadso.c"
1236
ed252764287a Minor bit of debug output added to dynamic X11 code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1190
diff changeset
39 #elif defined(USE_DLOPEN)
ed252764287a Minor bit of debug output added to dynamic X11 code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1190
diff changeset
40 # include "loadso/dlopen/SDL_loadso.c"
1173
e9cf8c1b4590 Split up src/SDL_loadso.c into platform directories.
Ryan C. Gordon <icculus@icculus.org>
parents: 1152
diff changeset
41 #elif defined(MACOSX)
e9cf8c1b4590 Split up src/SDL_loadso.c into platform directories.
Ryan C. Gordon <icculus@icculus.org>
parents: 1152
diff changeset
42 # include "loadso/macosx/SDL_loadso.c"
294
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
43 #elif defined(macintosh)
1173
e9cf8c1b4590 Split up src/SDL_loadso.c into platform directories.
Ryan C. Gordon <icculus@icculus.org>
parents: 1152
diff changeset
44 # include "loadso/macos/SDL_loadso.c"
e9cf8c1b4590 Split up src/SDL_loadso.c into platform directories.
Ryan C. Gordon <icculus@icculus.org>
parents: 1152
diff changeset
45 #elif defined(WIN32) || defined(_WIN32_WCE)
e9cf8c1b4590 Split up src/SDL_loadso.c into platform directories.
Ryan C. Gordon <icculus@icculus.org>
parents: 1152
diff changeset
46 # include "loadso/windows/SDL_loadso.c"
e9cf8c1b4590 Split up src/SDL_loadso.c into platform directories.
Ryan C. Gordon <icculus@icculus.org>
parents: 1152
diff changeset
47 #elif defined(__BEOS__)
e9cf8c1b4590 Split up src/SDL_loadso.c into platform directories.
Ryan C. Gordon <icculus@icculus.org>
parents: 1152
diff changeset
48 # include "loadso/beos/SDL_loadso.c"
651
35ff0890ac4e pmandin: Added Atari LDG shared object loader
Patrice Mandin <patmandin@gmail.com>
parents: 336
diff changeset
49 #elif defined(__MINT__) && defined(ENABLE_LDG)
1173
e9cf8c1b4590 Split up src/SDL_loadso.c into platform directories.
Ryan C. Gordon <icculus@icculus.org>
parents: 1152
diff changeset
50 # include "loadso/mint/SDL_loadso.c"
1190
173c063d4f55 OS/2 port!
Ryan C. Gordon <icculus@icculus.org>
parents: 1173
diff changeset
51 #elif defined(__OS2__)
173c063d4f55 OS/2 port!
Ryan C. Gordon <icculus@icculus.org>
parents: 1173
diff changeset
52 # include "loadso/os2/SDL_loadso.c"
294
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
53 #else
1173
e9cf8c1b4590 Split up src/SDL_loadso.c into platform directories.
Ryan C. Gordon <icculus@icculus.org>
parents: 1152
diff changeset
54 # include "loadso/dummy/SDL_loadso.c"
294
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
55 #endif /* system type */
d2d48e10f370 Added a new header file: SDL_loadso.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
56