Pārlūkot izejas kodu

If there isn't a GetGlobalMouseState() implementation, fall back to the normal one.

Sam Lantinga 4 gadi atpakaļ
vecāks
revīzija
bcbaa4ec1f

+ 14 - 13
src/events/SDL_mouse.c

@@ -722,23 +722,24 @@ Uint32
 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 (!y) {
-        y = &tmpy;
-    }
+    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;
+        *x = *y = 0;
 
-    if (!mouse->GetGlobalMouseState) {
-        return 0;
+        return mouse->GetGlobalMouseState(x, y);
+    } else {
+        return SDL_GetMouseState(x, y);
     }
-
-    return mouse->GetGlobalMouseState(x, y);
 }
 
 void

+ 0 - 2
src/video/kmsdrm/SDL_kmsdrmmouse.c

@@ -466,8 +466,6 @@ KMSDRM_InitMouse(_THIS)
     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());
 }

+ 0 - 18
src/video/offscreen/SDL_offscreenvideo.c

@@ -109,19 +109,6 @@ VideoBootStrap OFFSCREEN_bootstrap = {
     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 @@ OFFSCREEN_VideoInit(_THIS)
     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;
 }