comctl32: listview: Prevent DragDetect from removing WM_LBUTTONUP messages.

This commit is contained in:
Lei Zhang 2008-09-10 16:43:43 -07:00 committed by Alexandre Julliard
parent d7794170e7
commit 5f9b0db217
1 changed files with 22 additions and 10 deletions

View File

@ -3321,7 +3321,18 @@ static LRESULT LISTVIEW_MouseMove(LISTVIEW_INFO *infoPtr, WORD fwKeys, INT x, IN
if (!(fwKeys & MK_LBUTTON)) if (!(fwKeys & MK_LBUTTON))
infoPtr->bLButtonDown = FALSE; infoPtr->bLButtonDown = FALSE;
if (infoPtr->bLButtonDown && DragDetect(infoPtr->hwndSelf, infoPtr->ptClickPos)) if (infoPtr->bLButtonDown)
{
MSG msg;
BOOL skip = FALSE;
/* Check to see if we got a WM_LBUTTONUP, and skip the DragDetect.
* Otherwise, DragDetect will eat it.
*/
if (PeekMessageW(&msg, 0, WM_MOUSEFIRST, WM_MOUSELAST, PM_NOREMOVE))
if (msg.message == WM_LBUTTONUP)
skip = TRUE;
if (!skip && DragDetect(infoPtr->hwndSelf, infoPtr->ptClickPos))
{ {
LVHITTESTINFO lvHitTestInfo; LVHITTESTINFO lvHitTestInfo;
NMLISTVIEW nmlv; NMLISTVIEW nmlv;
@ -3337,6 +3348,7 @@ static LRESULT LISTVIEW_MouseMove(LISTVIEW_INFO *infoPtr, WORD fwKeys, INT x, IN
return 0; return 0;
} }
}
else else
infoPtr->bLButtonDown = FALSE; infoPtr->bLButtonDown = FALSE;