If there isn't a GetGlobalMouseState() implementation, fall back to the normal one.
diff --git a/src/events/SDL_mouse.c b/src/events/SDL_mouse.c
index 5d6f7dc..03bae6b 100644
--- a/src/events/SDL_mouse.c
+++ b/src/events/SDL_mouse.c
@@ -722,23 +722,24 @@
SDL_GetGlobalMouseState(int *x, int *y)
{
SDL_Mouse *mouse = SDL_GetMouse();
- int tmpx, tmpy;
- /* make sure these are never NULL for the backend implementations... */
- if (!x) {
- x = &tmpx;
+ if (mouse->GetGlobalMouseState) {
+ int tmpx, tmpy;
+
+ /* make sure these are never NULL for the backend implementations... */
+ if (!x) {
+ x = &tmpx;
+ }
+ if (!y) {
+ y = &tmpy;
+ }
+
+ *x = *y = 0;
+
+ return mouse->GetGlobalMouseState(x, y);
+ } else {
+ return SDL_GetMouseState(x, y);
}
- if (!y) {
- y = &tmpy;
- }
-
- *x = *y = 0;
-
- if (!mouse->GetGlobalMouseState) {
- return 0;
- }
-
- return mouse->GetGlobalMouseState(x, y);
}
void
diff --git a/src/video/kmsdrm/SDL_kmsdrmmouse.c b/src/video/kmsdrm/SDL_kmsdrmmouse.c
index abef62c..8de6291 100644
--- a/src/video/kmsdrm/SDL_kmsdrmmouse.c
+++ b/src/video/kmsdrm/SDL_kmsdrmmouse.c
@@ -466,8 +466,6 @@
mouse->FreeCursor = KMSDRM_FreeCursor;
mouse->WarpMouse = KMSDRM_WarpMouse;
mouse->WarpMouseGlobal = KMSDRM_WarpMouseGlobal;
- /* No desktop on KMSDRM, so just return the normal mouse state. */
- mouse->GetGlobalMouseState = SDL_GetMouseState;
SDL_SetDefaultCursor(KMSDRM_CreateDefaultCursor());
}
diff --git a/src/video/offscreen/SDL_offscreenvideo.c b/src/video/offscreen/SDL_offscreenvideo.c
index 811eb4a..66c4300 100644
--- a/src/video/offscreen/SDL_offscreenvideo.c
+++ b/src/video/offscreen/SDL_offscreenvideo.c
@@ -109,19 +109,6 @@
OFFSCREEN_Available, OFFSCREEN_CreateDevice
};
-static Uint32
-OFFSCREEN_GetGlobalMouseState(int *x, int *y)
-{
- if (x) {
- *x = 0;
- }
-
- if (y) {
- *y = 0;
- }
- return 0;
-}
-
int
OFFSCREEN_VideoInit(_THIS)
{
@@ -141,11 +128,6 @@
SDL_zero(mode);
SDL_AddDisplayMode(&_this->displays[0], &mode);
- /* Init mouse */
- mouse = SDL_GetMouse();
- /* This function needs to be implemented by every driver */
- mouse->GetGlobalMouseState = OFFSCREEN_GetGlobalMouseState;
-
/* We're done! */
return 0;
}