mirror of https://github.com/libsdl-org/SDL.git
Split the redraw effect to own function
This commit is contained in:
parent
6c172e5220
commit
4779499048
|
|
@ -1599,6 +1599,26 @@ SDL_Cursor *SDL_CreateSystemCursor(SDL_SystemCursor id)
|
||||||
return cursor;
|
return cursor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SDL_RedrawCursor(void)
|
||||||
|
{
|
||||||
|
SDL_Mouse *mouse = SDL_GetMouse();
|
||||||
|
SDL_Cursor *cursor;
|
||||||
|
|
||||||
|
if (mouse->focus) {
|
||||||
|
cursor = mouse->cur_cursor;
|
||||||
|
} else {
|
||||||
|
cursor = mouse->def_cursor;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mouse->focus && (!mouse->cursor_visible || (mouse->relative_mode && mouse->relative_mode_hide_cursor))) {
|
||||||
|
cursor = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mouse->ShowCursor) {
|
||||||
|
mouse->ShowCursor(cursor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* SDL_SetCursor(NULL) can be used to force the cursor redraw,
|
/* SDL_SetCursor(NULL) can be used to force the cursor redraw,
|
||||||
if this is desired for any reason. This is used when setting
|
if this is desired for any reason. This is used when setting
|
||||||
the video mode and when the SDL window gains the mouse focus.
|
the video mode and when the SDL window gains the mouse focus.
|
||||||
|
|
@ -1629,19 +1649,7 @@ bool SDL_SetCursor(SDL_Cursor *cursor)
|
||||||
mouse->cur_cursor = cursor;
|
mouse->cur_cursor = cursor;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mouse->focus) {
|
SDL_RedrawCursor();
|
||||||
cursor = mouse->cur_cursor;
|
|
||||||
} else {
|
|
||||||
cursor = mouse->def_cursor;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mouse->focus && (!mouse->cursor_visible || (mouse->relative_mode && mouse->relative_mode_hide_cursor))) {
|
|
||||||
cursor = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mouse->ShowCursor) {
|
|
||||||
mouse->ShowCursor(cursor);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -175,6 +175,9 @@ extern void SDL_SetMouseName(SDL_MouseID mouseID, const char *name);
|
||||||
// Get the mouse state structure
|
// Get the mouse state structure
|
||||||
extern SDL_Mouse *SDL_GetMouse(void);
|
extern SDL_Mouse *SDL_GetMouse(void);
|
||||||
|
|
||||||
|
// Set the default mouse cursor
|
||||||
|
extern void SDL_RedrawCursor(void);
|
||||||
|
|
||||||
// Set the default mouse cursor
|
// Set the default mouse cursor
|
||||||
extern void SDL_SetDefaultCursor(SDL_Cursor *cursor);
|
extern void SDL_SetDefaultCursor(SDL_Cursor *cursor);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue