Commit 5f9b0db2 authored by Lei Zhang's avatar Lei Zhang Committed by Alexandre Julliard

comctl32: listview: Prevent DragDetect from removing WM_LBUTTONUP messages.

parent d7794170
......@@ -3321,21 +3321,33 @@ static LRESULT LISTVIEW_MouseMove(LISTVIEW_INFO *infoPtr, WORD fwKeys, INT x, IN
if (!(fwKeys & MK_LBUTTON))
infoPtr->bLButtonDown = FALSE;
if (infoPtr->bLButtonDown && DragDetect(infoPtr->hwndSelf, infoPtr->ptClickPos))
if (infoPtr->bLButtonDown)
{
LVHITTESTINFO lvHitTestInfo;
NMLISTVIEW nmlv;
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;
NMLISTVIEW nmlv;
lvHitTestInfo.pt = infoPtr->ptClickPos;
LISTVIEW_HitTest(infoPtr, &lvHitTestInfo, TRUE, TRUE);
lvHitTestInfo.pt = infoPtr->ptClickPos;
LISTVIEW_HitTest(infoPtr, &lvHitTestInfo, TRUE, TRUE);
ZeroMemory(&nmlv, sizeof(nmlv));
nmlv.iItem = lvHitTestInfo.iItem;
nmlv.ptAction = infoPtr->ptClickPos;
ZeroMemory(&nmlv, sizeof(nmlv));
nmlv.iItem = lvHitTestInfo.iItem;
nmlv.ptAction = infoPtr->ptClickPos;
notify_listview(infoPtr, LVN_BEGINDRAG, &nmlv);
notify_listview(infoPtr, LVN_BEGINDRAG, &nmlv);
return 0;
return 0;
}
}
else
infoPtr->bLButtonDown = FALSE;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment