Index: subsystems/win32/win32k/ntuser/message.c =================================================================== --- subsystems/win32/win32k/ntuser/message.c (revision 48523) +++ subsystems/win32/win32k/ntuser/message.c (working copy) @@ -579,14 +579,20 @@ return TRUE; } + *HitTest = HTCLIENT; + UserRefObjectCo(Window, &Ref); if ( ThreadQueue == Window->pti->MessageQueue && ThreadQueue->CaptureWindow != Window->hSelf) { /* only send WM_NCHITTEST messages if we're not capturing the window! */ - *HitTest = co_IntSendMessage(Window->hSelf, WM_NCHITTEST, 0, - MAKELONG(Msg->pt.x, Msg->pt.y)); + if (Remove ) + { + *HitTest = co_IntSendMessage(Window->hSelf, WM_NCHITTEST, 0, + MAKELONG(Msg->pt.x, Msg->pt.y)); + } + /* else we are going to see this message again, but then with Remove == TRUE */ if (*HitTest == (USHORT)HTTRANSPARENT) { @@ -626,10 +632,6 @@ } } } - else - { - *HitTest = HTCLIENT; - } if ( gspv.bMouseClickLock && ( (Msg->message == WM_LBUTTONUP) || @@ -801,6 +803,8 @@ */ CheckMessages: + HitTest = HTNOWHERE; + Present = FALSE; KeQueryTickCount(&LargeTickCount);