From c4d5cc358f8bd04a22233cd8ffa66e37a0bb81ae Mon Sep 17 00:00:00 2001
From: expikr <[EMAIL REDACTED]>
Date: Sun, 27 Apr 2025 13:31:50 +0800
Subject: [PATCH] streamline boolean logic
---
src/events/SDL_mouse.c | 25 +++++++++++--------------
1 file changed, 11 insertions(+), 14 deletions(-)
diff --git a/src/events/SDL_mouse.c b/src/events/SDL_mouse.c
index 9d47e4ad7ddd6..ee869f9e51d78 100644
--- a/src/events/SDL_mouse.c
+++ b/src/events/SDL_mouse.c
@@ -1607,7 +1607,7 @@ bool SDL_SetCursor(SDL_Cursor *cursor)
{
SDL_Mouse *mouse = SDL_GetMouse();
- // Return immediately if setting the cursor to the currently set one (fixes #7151)
+ // already on this cursor, no further action required
if (cursor == mouse->cur_cursor) {
return true;
}
@@ -1627,23 +1627,20 @@ bool SDL_SetCursor(SDL_Cursor *cursor)
}
}
mouse->cur_cursor = cursor;
+ } else if (mouse->focus) {
+ cursor = mouse->cur_cursor;
} else {
- if (mouse->focus) {
- cursor = mouse->cur_cursor;
- } else {
- cursor = mouse->def_cursor;
- }
+ cursor = mouse->def_cursor;
}
- if (cursor && (!mouse->focus || (mouse->cursor_visible && (!mouse->relative_mode || !mouse->relative_mode_hide_cursor)))) {
- if (mouse->ShowCursor) {
- mouse->ShowCursor(cursor);
- }
- } else {
- if (mouse->ShowCursor) {
- mouse->ShowCursor(NULL);
- }
+ if (mouse->focus && (!mouse->cursor_visible || (mouse->relative_mode && mouse->relative_mode_hide_cursor))) {
+ cursor = NULL;
+ }
+
+ if (mouse->ShowCursor) {
+ mouse->ShowCursor(cursor);
}
+
return true;
}