Fixed double-mouse event bug on Windows using OpenGL
authorSam Lantinga <slouken@lokigames.com>
Sun, 29 Apr 2001 23:00:03 +0000
changeset 13 e30a8ce27c22
parent 12 34d956b20f75
child 14 c3e9d4a623c1
Fixed double-mouse event bug on Windows using OpenGL
docs.html
src/video/wincommon/SDL_lowvideo.h
src/video/wincommon/SDL_sysevents.c
src/video/wincommon/SDL_sysmouse.c
--- a/docs.html	Sun Apr 29 22:59:47 2001 +0000
+++ b/docs.html	Sun Apr 29 23:00:03 2001 +0000
@@ -16,6 +16,7 @@
 Major changes since SDL 1.0.0:
 </H2>
 <UL>
+	<LI> 1.2.1: Fixed double-mouse event bug on Windows using OpenGL
 	<LI> 1.2.1: Fixed 320x200 video mode on framebuffer console
 	<LI> 1.2.1: Improved robustness for the ELO touchpad (thanks Alex!)
 	<LI> 1.2.1: Added support for building under Cygwin on Windows
--- a/src/video/wincommon/SDL_lowvideo.h	Sun Apr 29 22:59:47 2001 +0000
+++ b/src/video/wincommon/SDL_lowvideo.h	Sun Apr 29 23:00:03 2001 +0000
@@ -35,13 +35,19 @@
 /* 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;
--- a/src/video/wincommon/SDL_sysevents.c	Sun Apr 29 22:59:47 2001 +0000
+++ b/src/video/wincommon/SDL_sysevents.c	Sun Apr 29 23:00:03 2001 +0000
@@ -200,7 +200,7 @@
 		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 @@
 		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 @@
 		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;
 
--- a/src/video/wincommon/SDL_sysmouse.c	Sun Apr 29 22:59:47 2001 +0000
+++ b/src/video/wincommon/SDL_sysmouse.c	Sun Apr 29 23:00:03 2001 +0000
@@ -192,7 +192,7 @@
 	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 @@
 {
 	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 @@
 	RECT rect;
 	POINT pt;
 
-	if ( ! DIRECTX_FULLSCREEN() ) {
+	if ( ! DDRAW_FULLSCREEN() ) {
 		GetClientRect(SDL_Window, &rect);
 		GetCursorPos(&pt);
 		MapWindowPoints(NULL, SDL_Window, &pt, 1);