[PROBLEM REPORT] Focus problem for mdi children
Alexandre Julliard
julliard at winehq.com
Wed Nov 7 18:46:37 CST 2001
Gerard Patel <gerard.patel at 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 at winehq.com
More information about the wine-devel
mailing list