changeset: 5277:c92686fbcc9b tag: tip user: Martin Decky date: Sat Feb 12 21:50:42 2011 +0100 summary: introduce new event SDL_WINDOWEVENT_SIZE_SET which should be used for programmatic window size change diff -r 1969036e064e -r c92686fbcc9b include/SDL_video.h --- a/include/SDL_video.h Sat Feb 12 21:34:00 2011 +0100 +++ b/include/SDL_video.h Sat Feb 12 21:50:42 2011 +0100 @@ -149,8 +149,10 @@ SDL_WINDOWEVENT_LEAVE, /**< Window has lost mouse focus */ SDL_WINDOWEVENT_FOCUS_GAINED, /**< Window has gained keyboard focus */ SDL_WINDOWEVENT_FOCUS_LOST, /**< Window has lost keyboard focus */ - SDL_WINDOWEVENT_CLOSE /**< The window manager requests that the + SDL_WINDOWEVENT_CLOSE, /**< The window manager requests that the window be closed */ + SDL_WINDOWEVENT_SIZE_SET /**< Window size changed to data1xdata2 + by calling SDL_SetWindowSize */ } SDL_WindowEventID; /** diff -r 1969036e064e -r c92686fbcc9b src/events/SDL_windowevents.c --- a/src/events/SDL_windowevents.c Sat Feb 12 21:34:00 2011 +0100 +++ b/src/events/SDL_windowevents.c Sat Feb 12 21:50:42 2011 +0100 @@ -100,6 +100,9 @@ window->h = data2; SDL_OnWindowResized(window); break; + case SDL_WINDOWEVENT_SIZE_SET: + SDL_OnWindowResized(window); + break; case SDL_WINDOWEVENT_MINIMIZED: if (window->flags & SDL_WINDOW_MINIMIZED) { return 0; diff -r 1969036e064e -r c92686fbcc9b src/render/opengl/SDL_render_gl.c --- a/src/render/opengl/SDL_render_gl.c Sat Feb 12 21:34:00 2011 +0100 +++ b/src/render/opengl/SDL_render_gl.c Sat Feb 12 21:50:42 2011 +0100 @@ -348,7 +348,8 @@ { GL_RenderData *data = (GL_RenderData *) renderer->driverdata; - if (event->event == SDL_WINDOWEVENT_RESIZED) { + if (event->event == SDL_WINDOWEVENT_RESIZED || + event->event == SDL_WINDOWEVENT_SIZE_SET) { /* Rebind the context to the window area and update matrices */ SDL_CurrentContext = NULL; data->updateSize = SDL_TRUE; diff -r 1969036e064e -r c92686fbcc9b src/render/opengles/SDL_render_gles.c --- a/src/render/opengles/SDL_render_gles.c Sat Feb 12 21:34:00 2011 +0100 +++ b/src/render/opengles/SDL_render_gles.c Sat Feb 12 21:50:42 2011 +0100 @@ -261,7 +261,8 @@ { GLES_RenderData *data = (GLES_RenderData *) renderer->driverdata; - if (event->event == SDL_WINDOWEVENT_RESIZED) { + if (event->event == SDL_WINDOWEVENT_RESIZED || + event->event == SDL_WINDOWEVENT_SIZE_SET) { /* Rebind the context to the window area and update matrices */ SDL_CurrentContext = NULL; data->updateSize = SDL_TRUE; diff -r 1969036e064e -r c92686fbcc9b src/render/opengles2/SDL_render_gles2.c --- a/src/render/opengles2/SDL_render_gles2.c Sat Feb 12 21:34:00 2011 +0100 +++ b/src/render/opengles2/SDL_render_gles2.c Sat Feb 12 21:50:42 2011 +0100 @@ -170,7 +170,8 @@ { GLES2_DriverContext *rdata = (GLES2_DriverContext *)renderer->driverdata; - if (event->event == SDL_WINDOWEVENT_RESIZED) { + if (event->event == SDL_WINDOWEVENT_RESIZED || + event->event == SDL_WINDOWEVENT_SIZE_SET) { /* Rebind the context to the window area */ SDL_CurrentContext = NULL; rdata->updateSize = SDL_TRUE; diff -r 1969036e064e -r c92686fbcc9b src/render/software/SDL_render_sw.c --- a/src/render/software/SDL_render_sw.c Sat Feb 12 21:34:00 2011 +0100 +++ b/src/render/software/SDL_render_sw.c Sat Feb 12 21:50:42 2011 +0100 @@ -173,7 +173,8 @@ { SW_RenderData *data = (SW_RenderData *) renderer->driverdata; - if (event->event == SDL_WINDOWEVENT_RESIZED) { + if (event->event == SDL_WINDOWEVENT_RESIZED || + event->event == SDL_WINDOWEVENT_SIZE_SET) { data->updateSize = SDL_TRUE; } } diff -r 1969036e064e -r c92686fbcc9b src/video/SDL_video.c --- a/src/video/SDL_video.c Sat Feb 12 21:34:00 2011 +0100 +++ b/src/video/SDL_video.c Sat Feb 12 21:50:42 2011 +0100 @@ -1451,10 +1451,12 @@ /* FIXME: Should this change fullscreen modes? */ if (!(window->flags & SDL_WINDOW_FULLSCREEN)) { + window->w = w; + window->h = h; if (_this->SetWindowSize) { _this->SetWindowSize(_this, window); } - SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, w, h); + SDL_SendWindowEvent(window, SDL_WINDOWEVENT_SIZE_SET, w, h); } } diff -r 1969036e064e -r c92686fbcc9b src/video/directfb/SDL_DirectFB_render.c --- a/src/video/directfb/SDL_DirectFB_render.c Sat Feb 12 21:34:00 2011 +0100 +++ b/src/video/directfb/SDL_DirectFB_render.c Sat Feb 12 21:50:42 2011 +0100 @@ -279,7 +279,8 @@ { SDL_DFB_RENDERERDATA(renderer); - if (event->event == SDL_WINDOWEVENT_RESIZED) { + if (event->event == SDL_WINDOWEVENT_RESIZED || + event->event == SDL_WINDOWEVENT_SIZE_SET) { /* Rebind the context to the window area and update matrices */ //SDL_CurrentContext = NULL; //data->updateSize = SDL_TRUE;