diff --git a/docs.html b/docs.html
index f403edd83..f2c3ccc43 100644
--- a/docs.html
+++ b/docs.html
@@ -16,6 +16,7 @@ be found at the main SDL page.
Major changes since SDL 1.0.0:
+ - 1.2.1: Fixed double-mouse event bug on Windows using OpenGL
- 1.2.1: Fixed 320x200 video mode on framebuffer console
- 1.2.1: Improved robustness for the ELO touchpad (thanks Alex!)
- 1.2.1: Added support for building under Cygwin on Windows
diff --git a/src/video/wincommon/SDL_lowvideo.h b/src/video/wincommon/SDL_lowvideo.h
index 00ebfd04d..18ff50abe 100644
--- a/src/video/wincommon/SDL_lowvideo.h
+++ b/src/video/wincommon/SDL_lowvideo.h
@@ -35,13 +35,19 @@ static char rcsid =
/* Hidden "this" pointer for the video functions */
#define _THIS SDL_VideoDevice *this
-#define DIRECTX_FULLSCREEN() \
+#define DDRAW_FULLSCREEN() \
( \
((SDL_VideoSurface->flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) && \
((SDL_VideoSurface->flags & SDL_OPENGL ) != SDL_OPENGL ) && \
(strcmp(this->name, "directx") == 0) \
)
+#define DINPUT_FULLSCREEN() \
+( \
+ ((SDL_VideoSurface->flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) && \
+ (strcmp(this->name, "directx") == 0) \
+)
+
/* The main window -- and a function to set it for the audio */
extern const char *SDL_Appname;
extern HINSTANCE SDL_Instance;
diff --git a/src/video/wincommon/SDL_sysevents.c b/src/video/wincommon/SDL_sysevents.c
index 0db07e03a..d4a8a6274 100644
--- a/src/video/wincommon/SDL_sysevents.c
+++ b/src/video/wincommon/SDL_sysevents.c
@@ -200,7 +200,7 @@ static LONG CALLBACK WinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
case WM_MOUSEMOVE: {
/* Mouse is handled by DirectInput when fullscreen */
- if ( SDL_VideoSurface && ! DIRECTX_FULLSCREEN() ) {
+ if ( SDL_VideoSurface && ! DINPUT_FULLSCREEN() ) {
Sint16 x, y;
/* mouse has entered the window */
@@ -243,7 +243,7 @@ static LONG CALLBACK WinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
case WM_MOUSELEAVE: {
/* Mouse is handled by DirectInput when fullscreen */
- if ( SDL_VideoSurface && ! DIRECTX_FULLSCREEN() ) {
+ if ( SDL_VideoSurface && ! DINPUT_FULLSCREEN() ) {
/* mouse has left the window */
/* or */
/* Elvis has left the building! */
@@ -261,7 +261,7 @@ static LONG CALLBACK WinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
case WM_RBUTTONDOWN:
case WM_RBUTTONUP: {
/* Mouse is handled by DirectInput when fullscreen */
- if ( SDL_VideoSurface && ! DIRECTX_FULLSCREEN() ) {
+ if ( SDL_VideoSurface && ! DINPUT_FULLSCREEN() ) {
Sint16 x, y;
Uint8 button, state;
diff --git a/src/video/wincommon/SDL_sysmouse.c b/src/video/wincommon/SDL_sysmouse.c
index 7d787e78a..993c45dc5 100644
--- a/src/video/wincommon/SDL_sysmouse.c
+++ b/src/video/wincommon/SDL_sysmouse.c
@@ -192,7 +192,7 @@ int WIN_ShowWMCursor(_THIS, WMcursor *cursor)
POINT mouse_pos;
/* The fullscreen cursor must be done in software with DirectInput */
- if ( !this->screen || DIRECTX_FULLSCREEN() ) {
+ if ( !this->screen || DDRAW_FULLSCREEN() ) {
return(0);
}
@@ -213,7 +213,7 @@ void WIN_WarpWMCursor(_THIS, Uint16 x, Uint16 y)
{
POINT pt;
- if ( DIRECTX_FULLSCREEN() ) {
+ if ( DDRAW_FULLSCREEN() ) {
x += (this->screen->offset % this->screen->pitch) /
this->screen->format->BytesPerPixel;
y += (this->screen->offset / this->screen->pitch);
@@ -237,7 +237,7 @@ void WIN_UpdateMouse(_THIS)
RECT rect;
POINT pt;
- if ( ! DIRECTX_FULLSCREEN() ) {
+ if ( ! DDRAW_FULLSCREEN() ) {
GetClientRect(SDL_Window, &rect);
GetCursorPos(&pt);
MapWindowPoints(NULL, SDL_Window, &pt, 1);