Rein Klazes wrote:
I was too early, another problem popped up caused by this patch. Un-maximized MDI child windows don't paint their non client area anymore (I tried two MDI applications, both had it).
I don't know why that only showed up now, but I have a workaround that I have been using for a long time on another MDI app with this problem, and it seems to also fix the current problem with Pegasus.
Index: dlls/x11drv/winpos.c =================================================================== RCS file: /home/wine/wine/dlls/x11drv/winpos.c,v retrieving revision 1.98 diff -u -r1.98 winpos.c --- dlls/x11drv/winpos.c 24 Aug 2004 18:49:34 -0000 1.98 +++ dlls/x11drv/winpos.c 1 Sep 2004 16:00:19 -0000 @@ -1364,8 +1367,7 @@
if (!(win = WIN_GetPtr( hwnd ))) return;
- if ((win->dwStyle & WS_VISIBLE) && - (win->dwStyle & WS_MINIMIZE) && + if ((win->dwStyle & WS_MINIMIZE) && (win->dwExStyle & WS_EX_MANAGED)) { int x, y; @@ -1392,7 +1394,10 @@ WIN_SetStyle( hwnd, style ); WIN_ReleasePtr( win );
- SendMessageA( hwnd, WM_SHOWWINDOW, SW_RESTORE, 0 ); + /* The SW_SHOW is needed if WS_VISIBLE is false. It will trigger + X11DRV_ShowWindow, and pass the SW_SHOW parameter. Otherwise, it + does not hurt anything. */ + SendMessageA( hwnd, WM_SHOWWINDOW, SW_RESTORE, SW_SHOW ); SetWindowPos( hwnd, 0, rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top, SWP_NOZORDER | SWP_WINE_NOHOSTMOVE ); }