Mercurial > sdl-ios-xcode
changeset 2849:523b10db69f8
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. :)
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 07 Dec 2008 21:53:28 +0000 |
parents | 8a3aa505ecba |
children | 43691ef70176 |
files | src/events/SDL_mouse.c src/events/SDL_mouse_c.h src/events/SDL_windowevents.c src/video/SDL_video.c |
diffstat | 4 files changed, 24 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/src/events/SDL_mouse.c Sun Dec 07 07:16:40 2008 +0000 +++ b/src/events/SDL_mouse.c Sun Dec 07 21:53:28 2008 +0000 @@ -364,21 +364,6 @@ 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 @@ } 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 {
--- a/src/events/SDL_mouse_c.h Sun Dec 07 07:16:40 2008 +0000 +++ b/src/events/SDL_mouse_c.h Sun Dec 07 21:53:28 2008 +0000 @@ -66,8 +66,8 @@ /* 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 @@ /* 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);
--- a/src/events/SDL_windowevents.c Sun Dec 07 07:16:40 2008 +0000 +++ b/src/events/SDL_windowevents.c Sun Dec 07 21:53:28 2008 +0000 @@ -74,7 +74,6 @@ 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) {
--- a/src/video/SDL_video.c Sun Dec 07 07:16:40 2008 +0000 +++ b/src/video/SDL_video.c Sun Dec 07 21:53:28 2008 +0000 @@ -1046,6 +1046,7 @@ if (_this->SetWindowSize) { _this->SetWindowSize(_this, window); } + SDL_OnWindowResized(window); } void @@ -1054,13 +1055,19 @@ SDL_Window *window = SDL_GetWindowFromID(windowID); if (!window) { - return; - } - if (w) { - *w = window->w; - } - if (h) { - *h = window->h; + if (w) { + *w = window->w; + } + if (h) { + *h = window->h; + } + } else { + if (w) { + *w = 0; + } + if (h) { + *h = 0; + } } }