mirror of
https://github.com/joel16/SDL2.git
synced 2024-12-02 16:26:28 +00:00
Make mouse relative mode save the original co-ordinates to restore them
properly.
This commit is contained in:
parent
b7f2ad8ad0
commit
0925c1dd78
@ -323,9 +323,13 @@ SDL_SetRelativeMouseMode(SDL_bool enabled)
|
||||
/* Set the relative mode */
|
||||
mouse->relative_mode = enabled;
|
||||
|
||||
if (!enabled && mouse->focus) {
|
||||
if (enabled) {
|
||||
/* Save the expected mouse position */
|
||||
mouse->original_x = mouse->x;
|
||||
mouse->original_y = mouse->y;
|
||||
} else if (mouse->focus) {
|
||||
/* Restore the expected mouse position */
|
||||
SDL_WarpMouseInWindow(mouse->focus, mouse->x, mouse->y);
|
||||
SDL_WarpMouseInWindow(mouse->focus, mouse->original_x, mouse->original_y);
|
||||
}
|
||||
|
||||
/* Flush pending mouse motion */
|
||||
|
@ -60,6 +60,8 @@ typedef struct
|
||||
int last_x, last_y; /* the last reported x and y coordinates */
|
||||
Uint8 buttonstate;
|
||||
SDL_bool relative_mode;
|
||||
/* the x and y coordinates when relative mode was activated */
|
||||
int original_x, original_y;
|
||||
|
||||
SDL_Cursor *cursors;
|
||||
SDL_Cursor *def_cursor;
|
||||
|
Loading…
Reference in New Issue
Block a user