From bcbaa4ec1f6d36cd24fc2cbd2a3bd5b1057f54db Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 26 May 2020 16:34:50 -0700 Subject: [PATCH] If there isn't a GetGlobalMouseState() implementation, fall back to the normal one. --- src/events/SDL_mouse.c | 31 ++++++++++++------------ src/video/kmsdrm/SDL_kmsdrmmouse.c | 2 -- src/video/offscreen/SDL_offscreenvideo.c | 18 -------------- 3 files changed, 16 insertions(+), 35 deletions(-) diff --git a/src/events/SDL_mouse.c b/src/events/SDL_mouse.c index 5d6f7dca7..03bae6b74 100644 --- a/src/events/SDL_mouse.c +++ b/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 (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 abef62c30..8de629143 100644 --- a/src/video/kmsdrm/SDL_kmsdrmmouse.c +++ b/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()); } diff --git a/src/video/offscreen/SDL_offscreenvideo.c b/src/video/offscreen/SDL_offscreenvideo.c index 811eb4a1b..66c4300a3 100644 --- a/src/video/offscreen/SDL_offscreenvideo.c +++ b/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; }