2010/8/20, tkreuzer@svn.reactos.org tkreuzer@svn.reactos.org:
Author: tkreuzer Date: Fri Aug 20 19:24:48 2010 New Revision: 48576
URL: http://svn.reactos.org/svn/reactos?rev=48576&view=rev Log: [WIN32K]
- co_IntTranslateMouseMessage: properly initialize *HitTest and only send
WM_NCHITTEST when the message is going to be removed
- co_IntPeekMessage: Prevent possible use of uninitialized HitTest by
ProcessMouseMessage()
- Patch by Jan Roeloffzen [jroeloffzen at hotmail dot com]
- Fixes bug 2139
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/message.c
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/message.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/message.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/message.c [iso-8859-1] Fri Aug 20 19:24:48 2010 @@ -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) {@@ -625,10 +631,6 @@ UserDerefObjectCo(DesktopWindow); } }
}
else
{
*HitTest = HTCLIENT;}
if ( gspv.bMouseClickLock &&
@@ -800,6 +802,8 @@ * WM_TIMER messages */ CheckMessages:
HitTest = HTNOWHERE;
Present = FALSE;