diff --git a/src/video/wincommon/SDL_lowvideo.h b/src/video/wincommon/SDL_lowvideo.h
index 27057b043c8c4188224142e77b483ef0eef79ec1..83bed364e17281afed48cb1ffb4607c3ab19ce68 100644
--- a/src/video/wincommon/SDL_lowvideo.h
+++ b/src/video/wincommon/SDL_lowvideo.h
@@ -48,11 +48,7 @@ static char rcsid =
 	(strcmp(this->name, "directx") == 0)				\
 )
 
-#define DINPUT_FULLSCREEN() 						\
-(									\
-	((SDL_VideoSurface->flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) && \
-	(strcmp(this->name, "directx") == 0)				\
-)
+#define DINPUT_FULLSCREEN()	DDRAW_FULLSCREEN()
 
 /* The main window -- and a function to set it for the audio */
 extern const char *SDL_Appname;
diff --git a/src/video/windx5/SDL_dx5events.c b/src/video/windx5/SDL_dx5events.c
index dfc25d07ca0d5ea33d5df341cd927a2cc90eedc0..dc950002b7316e8490d7192c5e6dce73d5c3ab81 100644
--- a/src/video/windx5/SDL_dx5events.c
+++ b/src/video/windx5/SDL_dx5events.c
@@ -298,7 +298,8 @@ static void handle_mouse(const int numevents, DIDEVICEOBJECTDATA *ptrbuf)
 	Uint8 button;
 
 	/* If we are in windowed mode, Windows is taking care of the mouse */
-	if ( ! (SDL_PublicSurface->flags & SDL_FULLSCREEN) ) {
+	if (  (SDL_PublicSurface->flags & SDL_OPENGL) ||
+	     !(SDL_PublicSurface->flags & SDL_FULLSCREEN) ) {
 		return;
 	}