diff -r 9cad21f6fa4e src/video/SDL_sysvideo.h --- a/src/video/SDL_sysvideo.h Sat Jun 01 12:53:32 2013 -0700 +++ b/src/video/SDL_sysvideo.h Thu Jun 06 10:42:37 2013 +0300 @@ -359,6 +359,8 @@ extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode); extern int SDL_AddVideoDisplay(const SDL_VideoDisplay * display); extern SDL_bool SDL_AddDisplayMode(SDL_VideoDisplay *display, const SDL_DisplayMode * mode); +extern int SDL_SetDesktopDisplayMode(int displayIndex, SDL_DisplayMode * mode); +extern int SDL_SetCurrentDisplayMode(int displayIndex, SDL_DisplayMode * mode); extern SDL_VideoDisplay *SDL_GetDisplayForWindow(SDL_Window *window); extern int SDL_RecreateWindow(SDL_Window * window, Uint32 flags); diff -r 9cad21f6fa4e src/video/SDL_video.c --- a/src/video/SDL_video.c Sat Jun 01 12:53:32 2013 -0700 +++ b/src/video/SDL_video.c Thu Jun 06 10:42:37 2013 +0300 @@ -743,6 +743,20 @@ } int +SDL_SetDesktopDisplayMode(int displayIndex, SDL_DisplayMode * mode) +{ + SDL_VideoDisplay *display; + + CHECK_DISPLAY_INDEX(displayIndex, -1); + + display = &_this->displays[displayIndex]; + if (mode) { + display->desktop_mode = *mode; + } + return 0; +} + +int SDL_GetCurrentDisplayMode(int displayIndex, SDL_DisplayMode * mode) { SDL_VideoDisplay *display; @@ -756,6 +770,20 @@ return 0; } +int +SDL_SetCurrentDisplayMode(int displayIndex, SDL_DisplayMode * mode) +{ + SDL_VideoDisplay *display; + + CHECK_DISPLAY_INDEX(displayIndex, -1); + + display = &_this->displays[displayIndex]; + if (mode) { + display->current_mode = *mode; + } + return 0; +} + static SDL_DisplayMode * SDL_GetClosestDisplayModeForDisplay(SDL_VideoDisplay * display, const SDL_DisplayMode * mode, diff -r 9cad21f6fa4e src/video/android/SDL_androidvideo.c --- a/src/video/android/SDL_androidvideo.c Sat Jun 01 12:53:32 2013 -0700 +++ b/src/video/android/SDL_androidvideo.c Thu Jun 06 10:42:37 2013 +0300 @@ -182,8 +182,18 @@ Android_ScreenHeight = height; Android_ScreenFormat = format; - if (Android_Window) { - SDL_SendWindowEvent(Android_Window, SDL_WINDOWEVENT_RESIZED, width, height); + if ((SDL_GetNumVideoDisplays() > 0) && (SDL_GetNumDisplayModes(0) > 0)) { + SDL_DisplayMode mode; + SDL_GetDesktopDisplayMode(0, &mode); + mode.format = format; + mode.w = width; + mode.h = height; + SDL_SetDesktopDisplayMode(0, &mode); + SDL_SetCurrentDisplayMode(0, &mode); + if (Android_Window) { + SDL_SetWindowDisplayMode(Android_Window, &mode); + SDL_SendWindowEvent(Android_Window, SDL_WINDOWEVENT_RESIZED, width, height); + } } }