Mercurial > sdl-ios-xcode
annotate src/video/wincommon/SDL_wingl_c.h @ 4393:9afe12fb4c41 SDL-1.2
Fixed bug #901
Tim Angus 2009-12-11 11:45:46 PST
Disable mouse event generation when state is not SDL_APPMOUSEFOCUS
If a Windows SDL application is minimised by using alt-tab, SDL_APPMOUSEFOCUS
is lost as part of the minimisation. Unfortunately, the directx driver doesn't
pay any attention to this state when generating mouse button events, so
clicking on the Desktop can cause mouse clicks in the SDL application, while
it's still minimised. The attached patch fixes this. It looks much more
complicated than it actually is due to indentation; here it is ignoring
whitespace:
tma@abraxas:~/sources/SDL-1.2-svn$ svn diff -x -b
Index: src/video/windx5/SDL_dx5events.c
===================================================================
--- src/video/windx5/SDL_dx5events.c (revision 5376)
+++ src/video/windx5/SDL_dx5events.c (working copy)
@@ -374,10 +374,9 @@
if ( !(SDL_GetAppState() & SDL_APPMOUSEFOCUS) ) {
mouse_lost = 1;
ClipCursor(NULL);
- }
-
+ } else {
/* If the mouse was lost, regain some sense of mouse state */
- if ( mouse_lost && (SDL_GetAppState() & SDL_APPMOUSEFOCUS) ) {
+ if ( mouse_lost ) {
POINT mouse_pos;
Uint8 old_state;
Uint8 new_state;
@@ -548,6 +547,7 @@
if ( xrel || yrel ) {
post_mouse_motion(1, xrel, yrel);
}
+ }
}
/* The main Win32 event handler */
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 14 Dec 2009 22:41:31 +0000 |
parents | a1b03ba2fcd0 |
children |
rev | line source |
---|---|
0 | 1 /* |
2 SDL - Simple DirectMedia Layer | |
4159 | 3 Copyright (C) 1997-2009 Sam Lantinga |
0 | 4 |
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:
769
diff
changeset
|
6 modify it under the terms of the GNU Lesser General Public |
0 | 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:
769
diff
changeset
|
8 version 2.1 of the License, or (at your option) any later version. |
0 | 9 |
10 This library is distributed in the hope that it will be useful, | |
11 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
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:
769
diff
changeset
|
13 Lesser General Public License for more details. |
0 | 14 |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
769
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:
769
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:
769
diff
changeset
|
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
0 | 18 |
19 Sam Lantinga | |
252
e8157fcb3114
Updated the source with the correct e-mail address
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
20 slouken@libsdl.org |
0 | 21 */ |
1402
d910939febfa
Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents:
1361
diff
changeset
|
22 #include "SDL_config.h" |
0 | 23 |
24 /* WGL implementation of SDL OpenGL support */ | |
25 | |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1315
diff
changeset
|
26 #include "../SDL_sysvideo.h" |
0 | 27 |
28 | |
29 struct SDL_PrivateGLData { | |
30 int gl_active; /* to stop switching drivers while we have a valid context */ | |
31 | |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1315
diff
changeset
|
32 #if SDL_VIDEO_OPENGL |
0 | 33 PIXELFORMATDESCRIPTOR GL_pfd; |
34 HDC GL_hdc; | |
35 HGLRC GL_hrc; | |
655
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
36 int pixel_format; |
1315
e94b0d7c33bc
Merged useful fixes from 1.3 branch
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
37 int WGL_ARB_pixel_format; |
0 | 38 |
39 void * (WINAPI *wglGetProcAddress)(const char *proc); | |
40 | |
41 HGLRC (WINAPI *wglCreateContext)(HDC hdc); | |
42 | |
43 BOOL (WINAPI *wglDeleteContext)(HGLRC hglrc); | |
44 | |
45 BOOL (WINAPI *wglMakeCurrent)(HDC hdc, HGLRC hglrc); | |
655
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
46 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
47 BOOL (WINAPI *wglGetPixelFormatAttribivARB)(HDC hdc, int iPixelFormat, |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
48 int iLayerPlane, |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
49 UINT nAttributes, |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
50 const int *piAttributes, |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
51 int *piValues); |
1736
3b2a92126f4d
Implemented bug #2, 117:
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
52 void (WINAPI *wglSwapIntervalEXT)(int interval); |
3b2a92126f4d
Implemented bug #2, 117:
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
53 int (WINAPI *wglGetSwapIntervalEXT)(void); |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1315
diff
changeset
|
54 #endif /* SDL_VIDEO_OPENGL */ |
0 | 55 }; |
56 | |
57 /* Old variable names */ | |
58 #define gl_active (this->gl_data->gl_active) | |
59 #define GL_pfd (this->gl_data->GL_pfd) | |
60 #define GL_hdc (this->gl_data->GL_hdc) | |
61 #define GL_hrc (this->gl_data->GL_hrc) | |
655
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
62 #define pixel_format (this->gl_data->pixel_format) |
0 | 63 |
64 /* OpenGL functions */ | |
65 extern int WIN_GL_SetupWindow(_THIS); | |
66 extern void WIN_GL_ShutDown(_THIS); | |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1315
diff
changeset
|
67 #if SDL_VIDEO_OPENGL |
0 | 68 extern int WIN_GL_MakeCurrent(_THIS); |
69 extern int WIN_GL_GetAttribute(_THIS, SDL_GLattr attrib, int* value); | |
70 extern void WIN_GL_SwapBuffers(_THIS); | |
71 extern void WIN_GL_UnloadLibrary(_THIS); | |
72 extern int WIN_GL_LoadLibrary(_THIS, const char* path); | |
73 extern void *WIN_GL_GetProcAddress(_THIS, const char* proc); | |
74 #endif | |
75 | |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1315
diff
changeset
|
76 #if SDL_VIDEO_OPENGL |
655
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
77 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
78 #ifndef WGL_ARB_pixel_format |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
79 #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
80 #define WGL_DRAW_TO_WINDOW_ARB 0x2001 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
81 #define WGL_DRAW_TO_BITMAP_ARB 0x2002 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
82 #define WGL_ACCELERATION_ARB 0x2003 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
83 #define WGL_NEED_PALETTE_ARB 0x2004 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
84 #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
85 #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
86 #define WGL_SWAP_METHOD_ARB 0x2007 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
87 #define WGL_NUMBER_OVERLAYS_ARB 0x2008 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
88 #define WGL_NUMBER_UNDERLAYS_ARB 0x2009 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
89 #define WGL_TRANSPARENT_ARB 0x200A |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
90 #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
91 #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
92 #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
93 #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
94 #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
95 #define WGL_SHARE_DEPTH_ARB 0x200C |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
96 #define WGL_SHARE_STENCIL_ARB 0x200D |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
97 #define WGL_SHARE_ACCUM_ARB 0x200E |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
98 #define WGL_SUPPORT_GDI_ARB 0x200F |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
99 #define WGL_SUPPORT_OPENGL_ARB 0x2010 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
100 #define WGL_DOUBLE_BUFFER_ARB 0x2011 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
101 #define WGL_STEREO_ARB 0x2012 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
102 #define WGL_PIXEL_TYPE_ARB 0x2013 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
103 #define WGL_COLOR_BITS_ARB 0x2014 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
104 #define WGL_RED_BITS_ARB 0x2015 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
105 #define WGL_RED_SHIFT_ARB 0x2016 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
106 #define WGL_GREEN_BITS_ARB 0x2017 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
107 #define WGL_GREEN_SHIFT_ARB 0x2018 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
108 #define WGL_BLUE_BITS_ARB 0x2019 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
109 #define WGL_BLUE_SHIFT_ARB 0x201A |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
110 #define WGL_ALPHA_BITS_ARB 0x201B |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
111 #define WGL_ALPHA_SHIFT_ARB 0x201C |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
112 #define WGL_ACCUM_BITS_ARB 0x201D |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
113 #define WGL_ACCUM_RED_BITS_ARB 0x201E |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
114 #define WGL_ACCUM_GREEN_BITS_ARB 0x201F |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
115 #define WGL_ACCUM_BLUE_BITS_ARB 0x2020 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
116 #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
117 #define WGL_DEPTH_BITS_ARB 0x2022 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
118 #define WGL_STENCIL_BITS_ARB 0x2023 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
119 #define WGL_AUX_BUFFERS_ARB 0x2024 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
120 #define WGL_NO_ACCELERATION_ARB 0x2025 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
121 #define WGL_GENERIC_ACCELERATION_ARB 0x2026 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
122 #define WGL_FULL_ACCELERATION_ARB 0x2027 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
123 #define WGL_SWAP_EXCHANGE_ARB 0x2028 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
124 #define WGL_SWAP_COPY_ARB 0x2029 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
125 #define WGL_SWAP_UNDEFINED_ARB 0x202A |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
126 #define WGL_TYPE_RGBA_ARB 0x202B |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
127 #define WGL_TYPE_COLORINDEX_ARB 0x202C |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
128 #endif |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
129 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
130 #ifndef WGL_ARB_multisample |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
131 #define WGL_SAMPLE_BUFFERS_ARB 0x2041 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
132 #define WGL_SAMPLES_ARB 0x2042 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
133 #endif |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
134 |
9c42ee1b7d77
Date: Thu, 24 Apr 2003 15:13:47 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
135 #endif |