Windows resize (openGL)

I need to determine when SDL is finished resizing, and “while
(!SDL_GetVideoSurface())”, doesn’t work for that. So how can I determine
when an SDL window has finished resizing, so I can start using openGL calls?

Note that the code below works on initation, and from windows->fullscreen,
but not from fullscreen-> window. There are also no SDL errors reported, it
just succeeds. When It starts calling openGL functions there is no opengl
context to draw too, causing errors.

When resizing to a smaller window, in windows, I use this code:

void initSDL(int w, int h, int colour)

{

    // Initialize the SDL library

    if( SDL_Init(SDL_INIT_VIDEO) < 0 )

    {

        //An error occured so report it. They can check the error log

for this message.

        cerr << "[Error] Couldn't initialize SDL VIDEO: " <<

SDL_GetError() << “\n”;

        //Display a message to the user

        AfxMessageBox("Couldn't initialize SDL VIDEO! See the error

log.");

        exit(1); //Quick Exit with error number 1

    }


    // Forces a clean up on exit

    atexit(SDL_Quit);

    //Initialize the display in a wxh colour-bit, requesting hardware

(faster) surfaces.

    if (SDL_SetVideoMode(w, h, colour, VideoFlag))

    {

        //Setup windows caption

        SDL_WM_SetCaption(WINDOWCAPTION, WINDOWCAPTION);

        //Set up the amount SDL gives each colour (32-bit)

        SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 8 );

        SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 8 );

        SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 8 );

        SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 8 );

        //Enabled z-buffer even though not used (disable to save memory

and speed)

        SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, ZDEPTH );

        SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );

        //Disable keyboard repeating, so that the program only receives

the keyboard down

        //message once.

        SDL_EnableKeyRepeat(0, 0);

        //Wait for SDL to be ready (probably should have a timeout)

        while (!SDL_GetVideoSurface());

    }

    else

    {

        //Nope, there was an error setting that video mode

        cerr << "[Error] Couldn't set video mode: " << SDL_GetError() <<

endl;

        AfxMessageBox("Couldn't set video mode! See the error log.");

        exit(1);

    }

}

VideoFlag = SDL_OPENGL | SDL_HWPALETTE | SDL_OPENGLBLIT;

//Resize the window
VideoFlag &= !SDL_FULLSCREEN; //Remove fullscreen (it was fullscreen before)

//Reset things

SDL_Quit(); //Parhaps should be SDL_QuitSubSystem(SDL_INIT_VIDEO);

initAll(ScreenWidth, ScreenHeight, ColourDepth);

Thanks,

Anderson