--- a/src/video/windib/SDL_dibvideo.c Mon Aug 19 02:34:22 2002 +0000
+++ b/src/video/windib/SDL_dibvideo.c Mon Aug 19 03:09:25 2002 +0000
@@ -573,9 +573,9 @@
#endif
}
- /* DJM: Don't piss of anyone who has setup his own window */
- if (!SDL_windowid)
- SetWindowLong(SDL_Window, GWL_STYLE, style);
+ /* DJM: Don't piss of anyone who has setup his own window */
+ if (!SDL_windowid)
+ SetWindowLong(SDL_Window, GWL_STYLE, style);
/* Delete the old bitmap if necessary */
if ( screen_bmp != NULL ) {
@@ -651,6 +651,7 @@
/* Resize the window */
if ( SDL_windowid == NULL ) {
+ HWND top;
UINT swp_flags;
SDL_resizing = 1;
@@ -671,14 +672,19 @@
y -= GetSystemMetrics(SM_CYCAPTION)/2;
}
#ifndef _WIN32_WCE
- swp_flags = (SWP_NOCOPYBITS | SWP_NOZORDER | SWP_SHOWWINDOW);
+ swp_flags = (SWP_NOCOPYBITS | SWP_FRAMECHANGED | SWP_SHOWWINDOW);
#else
- swp_flags = (SWP_NOZORDER | SWP_SHOWWINDOW);
+ swp_flags = (SWP_FRAMECHANGED | SWP_SHOWWINDOW);
#endif
if ( was_visible && !(flags & SDL_FULLSCREEN) ) {
swp_flags |= SWP_NOMOVE;
}
- SetWindowPos(SDL_Window, NULL, x, y, width, height, swp_flags);
+ if ( flags & SDL_FULLSCREEN ) {
+ top = HWND_TOPMOST;
+ } else {
+ top = HWND_NOTOPMOST;
+ }
+ SetWindowPos(SDL_Window, top, x, y, width, height, swp_flags);
SDL_resizing = 0;
SetForegroundWindow(SDL_Window);
}
--- a/src/video/windx5/SDL_dx5video.c Mon Aug 19 02:34:22 2002 +0000
+++ b/src/video/windx5/SDL_dx5video.c Mon Aug 19 03:09:25 2002 +0000
@@ -1080,7 +1080,7 @@
style = GetWindowLong(SDL_Window, GWL_STYLE);
style &= ~(resizestyle|WS_MAXIMIZE);
- if ( (video->flags & SDL_FULLSCREEN) == SDL_FULLSCREEN ) {
+ if ( video->flags & SDL_FULLSCREEN ) {
style &= ~windowstyle;
style |= directstyle;
} else {
@@ -1102,6 +1102,7 @@
/* Resize the window (copied from SDL WinDIB driver) */
if ( SDL_windowid == NULL ) {
+ HWND top;
UINT swp_flags;
SDL_resizing = 1;
@@ -1117,11 +1118,16 @@
if ( y < 0 ) { /* Cover up title bar for more client area */
y -= GetSystemMetrics(SM_CYCAPTION)/2;
}
- swp_flags = (SWP_NOCOPYBITS | SWP_NOZORDER | SWP_SHOWWINDOW);
- if ( was_visible && !(flags & SDL_FULLSCREEN) ) {
+ swp_flags = (SWP_NOCOPYBITS | SWP_FRAMECHANGED | SWP_SHOWWINDOW);
+ if ( was_visible && (video->flags & SDL_FULLSCREEN) ) {
swp_flags |= SWP_NOMOVE;
}
- SetWindowPos(SDL_Window, NULL, x, y, width, height, swp_flags);
+ if ( video->flags & SDL_FULLSCREEN ) {
+ top = HWND_TOPMOST;
+ } else {
+ top = HWND_NOTOPMOST;
+ }
+ SetWindowPos(SDL_Window, top, x, y, width, height, swp_flags);
SDL_resizing = 0;
SetForegroundWindow(SDL_Window);
}