--- a/src/video/windib/SDL_dibvideo.c Sat Aug 17 19:17:01 2002 +0000
+++ b/src/video/windib/SDL_dibvideo.c Sat Aug 17 19:17:18 2002 +0000
@@ -889,6 +889,16 @@
#endif /* !NO_GAMMA_SUPPORT */
}
+static void FlushMessageQueue()
+{
+ MSG msg;
+ while ( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) ) {
+ if ( msg.message == WM_QUIT ) break;
+ TranslateMessage( &msg );
+ DispatchMessage( &msg );
+ }
+}
+
void DIB_VideoQuit(_THIS)
{
/* Destroy the window and everything associated with it */
@@ -918,6 +928,7 @@
}
DIB_QuitGamma(this);
DIB_DestroyWindow(this);
+ FlushMessageQueue();
SDL_Window = NULL;
}
--- a/src/video/windx5/SDL_dx5video.c Sat Aug 17 19:17:01 2002 +0000
+++ b/src/video/windx5/SDL_dx5video.c Sat Aug 17 19:17:18 2002 +0000
@@ -2205,6 +2205,16 @@
#endif /* !IDirectDrawGammaControl_SetGammaRamp */
}
+static void FlushMessageQueue()
+{
+ MSG msg;
+ while ( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) ) {
+ if ( msg.message == WM_QUIT ) break;
+ TranslateMessage( &msg );
+ DispatchMessage( &msg );
+ }
+}
+
void DX5_VideoQuit(_THIS)
{
int i, j;
@@ -2246,6 +2256,7 @@
DIB_QuitGamma(this);
if ( SDL_Window ) {
DX5_DestroyWindow(this);
+ FlushMessageQueue();
}
/* Free our window icon */