Sergio sdelreal@codeweavers.com wrote:
@@ -701,7 +701,10 @@ static HWND DIALOG_CreateIndirect( HINSTANCE hInst, LPCVOID dlgTemplate,
if (template.style & WS_VISIBLE && !(GetWindowLongW( hwnd, GWL_STYLE ) & WS_VISIBLE)) {
HWND hwnd_capture; ShowWindow( hwnd, SW_SHOWNORMAL ); /* SW_SHOW doesn't always work */
if ( (hwnd_capture = GetCapture()) && !IsChild( hwnd, hwnd_capture ) && modal_owner )
SendMessageW(hwnd_capture, WM_CANCELMODE, 0, 0); }
This is most likely wrong, WM_CANCELMODE should be sent when the capturing window loses focus during ShowWindow( hwnd, SW_SHOWNORMAL ) call.
+static INT_PTR CALLBACK TestModalDlgWithCaptureProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +{
- struct recvd_message msg;
- if (ignore_message( message )) return 0;
- switch (message)
- {
case WM_NCHITTEST:
return HTCLIENT;
case WM_QUERYNEWPALETTE:
case WM_GETTEXT:
case WM_WINDOWPOSCHANGING:
case WM_WINDOWPOSCHANGED:
case WM_NCPAINT:
case WM_NCACTIVATE:
case WM_NCCALCSIZE:
case WM_NCDESTROY:
case WM_PAINT:
case WM_ERASEBKGND:
case WM_ACTIVATEAPP:
case WM_CTLCOLORDLG:
case WM_CTLCOLORBTN:
case WM_SETFOCUS:
case WM_KILLFOCUS:
case 0x90:
break;
The fact that you need to filter out so many messages is a clear sign that the test is broken. Same comment applies for the next message proc.