X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fmswin%2Ffg_main_mswin.c;h=6d286e75142f2225d7e5c0178647791f0f5cdd56;hb=226cd5ccd0f86cc1f2741e686fcf8e4846acf867;hp=8ad83088928875b7f450424e6cec515eb1b341a6;hpb=04240975d24fe6499d504abe9cb9956785c86988;p=freeglut diff --git a/src/mswin/fg_main_mswin.c b/src/mswin/fg_main_mswin.c index 8ad8308..6d286e7 100644 --- a/src/mswin/fg_main_mswin.c +++ b/src/mswin/fg_main_mswin.c @@ -1626,6 +1626,7 @@ void fgPlatformPosResZordWork(SFG_Window* window, unsigned int workMask) RECT rect; HMONITOR hMonitor; MONITORINFO mi; + DWORD newStyle; /* save current window rect, style, exstyle and maximized state */ window->State.pWState.OldMaximized = !!IsZoomed(window->Window.Handle); @@ -1641,8 +1642,14 @@ void fgPlatformPosResZordWork(SFG_Window* window, unsigned int workMask) window->State.pWState.OldStyleEx = GetWindowLong(window->Window.Handle, GWL_EXSTYLE); /* remove decorations from style */ - SetWindowLong(window->Window.Handle, GWL_STYLE, - window->State.pWState.OldStyle & ~(WS_CAPTION | WS_THICKFRAME)); + newStyle = window->State.pWState.OldStyle & ~(WS_CAPTION | WS_THICKFRAME); + if (fgState.DisplayMode & GLUT_STEREO) + { + /* stereo mode does not engage on nVidia stereo buffers. This kills child + windows, but we make the guess that those are rare for stereo windows. */ + newStyle |= WS_POPUP; + } + SetWindowLong(window->Window.Handle, GWL_STYLE, newStyle); SetWindowLong(window->Window.Handle, GWL_EXSTYLE, window->State.pWState.OldStyleEx & ~(WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE));