- Attempt to fix Win test_mouse_input, properly set MA_ACTIVATE with right conditions when sending WM_LBUTTONDOWN.
- Get code close to wine.

svn path=/trunk/; revision=57109
This commit is contained in:
James Tabor 2012-08-19 23:07:29 +00:00
parent 50f30b7887
commit 1ea0ebc894
2 changed files with 11 additions and 38 deletions

View file

@ -1274,62 +1274,32 @@ User32DefWindowProc(HWND hWnd,
} }
*/ */
case WM_CLOSE: case WM_CLOSE:
{
DestroyWindow(hWnd); DestroyWindow(hWnd);
return (0); return (0);
}
case WM_MOUSEACTIVATE: case WM_MOUSEACTIVATE:
{
if (GetWindowLongPtrW(hWnd, GWL_STYLE) & WS_CHILD) if (GetWindowLongPtrW(hWnd, GWL_STYLE) & WS_CHILD)
{ {
LONG Ret; LONG Ret = SendMessageW(GetParent(hWnd), WM_MOUSEACTIVATE, wParam, lParam);
if (bUnicode) if (Ret) return (Ret);
{
Ret = SendMessageW(GetParent(hWnd), WM_MOUSEACTIVATE,
wParam, lParam);
}
else
{
Ret = SendMessageA(GetParent(hWnd), WM_MOUSEACTIVATE,
wParam, lParam);
}
if (Ret)
{
return (Ret);
}
} }
return ((LOWORD(lParam) >= HTCLIENT) ? MA_ACTIVATE : MA_NOACTIVATE); return ( (HIWORD(lParam) == WM_LBUTTONDOWN && LOWORD(lParam) == HTCAPTION) ? MA_NOACTIVATE : MA_ACTIVATE );
}
case WM_ACTIVATE: case WM_ACTIVATE:
{ /* The default action in Windows is to set the keyboard focus to
/* Check if the window is minimized. */ * the window, if it's being activated and not minimized */
if (LOWORD(wParam) != WA_INACTIVE && if (LOWORD(wParam) != WA_INACTIVE &&
!(GetWindowLongPtrW(hWnd, GWL_STYLE) & WS_MINIMIZE)) !(GetWindowLongPtrW(hWnd, GWL_STYLE) & WS_MINIMIZE))
{ {
//ERR("WM_ACTIVATE %p\n",hWnd);
SetFocus(hWnd); SetFocus(hWnd);
} }
break; break;
}
case WM_MOUSEWHEEL: case WM_MOUSEWHEEL:
{
if (GetWindowLongPtrW(hWnd, GWL_STYLE) & WS_CHILD) if (GetWindowLongPtrW(hWnd, GWL_STYLE) & WS_CHILD)
{ return SendMessageW( GetParent(hWnd), WM_MOUSEWHEEL, wParam, lParam);
if (bUnicode)
{
return (SendMessageW(GetParent(hWnd), WM_MOUSEWHEEL,
wParam, lParam));
}
else
{
return (SendMessageA(GetParent(hWnd), WM_MOUSEWHEEL,
wParam, lParam));
}
}
break; break;
}
case WM_ERASEBKGND: case WM_ERASEBKGND:
case WM_ICONERASEBKGND: case WM_ICONERASEBKGND:

View file

@ -995,7 +995,8 @@ DefWndNCLButtonDown(HWND hWnd, WPARAM wParam, LPARAM lParam)
} }
case HTSYSMENU: case HTSYSMENU:
{ {
if (GetWindowLongPtrW(hWnd, GWL_STYLE) & WS_SYSMENU) LONG style = GetWindowLongPtrW( hWnd, GWL_STYLE );
if (style & WS_SYSMENU)
{ {
SendMessageW(hWnd, WM_SYSCOMMAND, SC_MOUSEMENU + HTSYSMENU, SendMessageW(hWnd, WM_SYSCOMMAND, SC_MOUSEMENU + HTSYSMENU,
lParam); lParam);
@ -1036,6 +1037,8 @@ DefWndNCLButtonDown(HWND hWnd, WPARAM wParam, LPARAM lParam)
SendMessageW(hWnd, WM_SYSCOMMAND, SC_SIZE + wParam - (HTLEFT - WMSZ_LEFT), lParam); SendMessageW(hWnd, WM_SYSCOMMAND, SC_SIZE + wParam - (HTLEFT - WMSZ_LEFT), lParam);
break; break;
} }
case HTBORDER:
break;
} }
return(0); return(0);
} }