Commit 3eec2c4d authored by Sam Lantinga's avatar Sam Lantinga

There's no reason to add extra code to notify the mice of window size changes.

Just query the window size when we care about it. :)

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403310
parent 546fea4e
......@@ -364,21 +364,6 @@ SDL_SetMouseFocus(int id, SDL_WindowID windowID)
if (!focus) {
SDL_SendWindowEvent(mouse->focus, SDL_WINDOWEVENT_ENTER, 0, 0);
}
SDL_GetWindowSize(windowID, &mouse->x_max, &mouse->y_max);
}
}
void
SDL_SetMouseFocusSize(SDL_WindowID windowID, int w, int h)
{
int i;
for (i = 0; i < SDL_num_mice; ++i) {
SDL_Mouse *mouse = SDL_GetMouse(i);
if (mouse && mouse->focus == windowID) {
mouse->x_max = w;
mouse->y_max = h;
}
}
}
......@@ -458,15 +443,19 @@ SDL_SendMouseMotion(int id, int relative, int x, int y, int pressure)
} else {
/* while using the relative mode and many windows, we have to be
sure that the pointers find themselves inside the windows */
if (mouse->x + xrel > mouse->x_max) {
mouse->x = mouse->x_max;
int x_max, y_max;
SDL_GetWindowSize(mouse->focus, &x_max, &y_max);
if (mouse->x + xrel > x_max) {
mouse->x = x_max;
} else if (mouse->x + xrel < 0) {
mouse->x = 0;
} else {
mouse->x += xrel;
}
if (mouse->y + yrel > mouse->y_max) {
mouse->y = mouse->y_max;
if (mouse->y + yrel > y_max) {
mouse->y = y_max;
} else if (mouse->y + yrel < 0) {
mouse->y = 0;
} else {
......
......@@ -66,8 +66,8 @@ struct SDL_Mouse
/* Data common to all mice */
SDL_WindowID focus;
int which;
int x, x_max;
int y, y_max;
int x;
int y;
int z; /* for future use */
int xdelta;
int ydelta;
......@@ -112,9 +112,6 @@ extern void SDL_ResetMouse(int index);
/* Set the mouse focus window */
extern void SDL_SetMouseFocus(int id, SDL_WindowID windowID);
/* Set the size of the mouse focus window */
extern void SDL_SetMouseFocusSize(SDL_WindowID windowID, int w, int h);
/* Send a mouse motion event for a mouse */
extern int SDL_SendMouseMotion(int id, int relative, int x, int y, int z);
......
......@@ -74,7 +74,6 @@ SDL_SendWindowEvent(SDL_WindowID windowID, Uint8 windowevent, int data1,
window->w = data1;
window->h = data2;
SDL_OnWindowResized(window);
SDL_SetMouseFocusSize(windowID, window->w, window->h);
break;
case SDL_WINDOWEVENT_MINIMIZED:
if (window->flags & SDL_WINDOW_MINIMIZED) {
......
......@@ -1046,6 +1046,7 @@ SDL_SetWindowSize(SDL_WindowID windowID, int w, int h)
if (_this->SetWindowSize) {
_this->SetWindowSize(_this, window);
}
SDL_OnWindowResized(window);
}
void
......@@ -1054,14 +1055,20 @@ SDL_GetWindowSize(SDL_WindowID windowID, int *w, int *h)
SDL_Window *window = SDL_GetWindowFromID(windowID);
if (!window) {
return;
}
if (w) {
*w = window->w;
}
if (h) {
*h = window->h;
}
} else {
if (w) {
*w = 0;
}
if (h) {
*h = 0;
}
}
}
void
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment