mirror of
https://github.com/Ryujinx/SDL.git
synced 2025-01-26 04:41:11 +00:00
Added GetClientScreenRect() and fixed build for C89 compilers
(cherry picked from commit 61ff86617ac9aa86e843aacd29b060b628bf9456)
This commit is contained in:
parent
488a91eb40
commit
2a946832ba
|
@ -1273,6 +1273,13 @@ void WIN_OnWindowEnter(_THIS, SDL_Window *window)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static BOOL GetClientScreenRect(HWND hwnd, RECT *rect)
|
||||||
|
{
|
||||||
|
return GetClientRect(hwnd, rect) && /* RECT( left , top , right , bottom ) */
|
||||||
|
ClientToScreen(hwnd, (LPPOINT)rect) && /* POINT( left , top ) */
|
||||||
|
ClientToScreen(hwnd, (LPPOINT)rect + 1); /* POINT( right , bottom ) */
|
||||||
|
}
|
||||||
|
|
||||||
void WIN_UpdateClipCursor(SDL_Window *window)
|
void WIN_UpdateClipCursor(SDL_Window *window)
|
||||||
{
|
{
|
||||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||||
|
@ -1293,9 +1300,7 @@ void WIN_UpdateClipCursor(SDL_Window *window)
|
||||||
(window->mouse_rect.w > 0 && window->mouse_rect.h > 0)) &&
|
(window->mouse_rect.w > 0 && window->mouse_rect.h > 0)) &&
|
||||||
(window->flags & SDL_WINDOW_INPUT_FOCUS)) {
|
(window->flags & SDL_WINDOW_INPUT_FOCUS)) {
|
||||||
if (mouse->relative_mode && !mouse->relative_mode_warp && data->mouse_relative_mode_center) {
|
if (mouse->relative_mode && !mouse->relative_mode_warp && data->mouse_relative_mode_center) {
|
||||||
if (GetClientRect(data->hwnd, &rect)) { /* RECT( left , top , right , bottom ) */
|
if (GetClientScreenRect(data->hwnd, &rect)) {
|
||||||
ClientToScreen(data->hwnd, (LPPOINT)&rect); /* POINT( left , top ) */
|
|
||||||
ClientToScreen(data->hwnd, (LPPOINT)&rect + 1); /* POINT( right , bottom ) */
|
|
||||||
/* WIN_WarpCursor() jitters by +1, and remote desktop warp wobble is +/- 1 */
|
/* WIN_WarpCursor() jitters by +1, and remote desktop warp wobble is +/- 1 */
|
||||||
LONG remote_desktop_adjustment = GetSystemMetrics(SM_REMOTESESSION) ? 2 : 0;
|
LONG remote_desktop_adjustment = GetSystemMetrics(SM_REMOTESESSION) ? 2 : 0;
|
||||||
LONG cx, cy;
|
LONG cx, cy;
|
||||||
|
@ -1316,9 +1321,7 @@ void WIN_UpdateClipCursor(SDL_Window *window)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (GetClientRect(data->hwnd, &rect)) {
|
if (GetClientScreenRect(data->hwnd, &rect)) {
|
||||||
ClientToScreen(data->hwnd, (LPPOINT)&rect);
|
|
||||||
ClientToScreen(data->hwnd, (LPPOINT)&rect + 1);
|
|
||||||
if (window->mouse_rect.w > 0 && window->mouse_rect.h > 0) {
|
if (window->mouse_rect.w > 0 && window->mouse_rect.h > 0) {
|
||||||
SDL_Rect mouse_rect_win_client;
|
SDL_Rect mouse_rect_win_client;
|
||||||
RECT mouse_rect, intersection;
|
RECT mouse_rect, intersection;
|
||||||
|
|
Loading…
Reference in a new issue