mirror of
https://github.com/reactos/reactos.git
synced 2024-10-05 08:54:40 +00:00
[User32]
- 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:
parent
50f30b7887
commit
1ea0ebc894
|
@ -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:
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue