Gerard Patel <gerard.patel(a)nerim.net> writes:
Using this patch : --- winpos.c.orig Wed Nov 7 10:41:32 2001 +++ winpos.c Thu Nov 8 00:44:29 2001 @@ -955,7 +955,20 @@ ShowCaret(winpos->hwnd); }
- if (!(winpos->flags & SWP_NOACTIVATE)) SetActiveWindow( winpos->hwnd ); + if (!(winpos->flags & SWP_NOACTIVATE)) + { + SetActiveWindow( winpos->hwnd ); + if (!(wndPtr = WIN_FindWndPtr(winpos->hwnd))) return FALSE; + + /* child windows get WM_CHILDACTIVATE message */ + if( (wndPtr->dwStyle & (WS_CHILD | WS_POPUP)) == WS_CHILD ) + { + WIN_ReleaseWndPtr(wndPtr); + SendMessageA(winpos->hwnd, WM_CHILDACTIVATE, 0, 0L); + } + else + WIN_ReleaseWndPtr(wndPtr); + }
/* And last, send the WM_WINDOWPOSCHANGED message */
seems to fix the problem. It may be too simple though :-)
No actually it's pretty much the right thing. I have applied a slightly simplified version of your patch, thanks for the report. -- Alexandre Julliard julliard(a)winehq.com