Nikolay Sivov : comctl32/listview: Fix some hittest problems on LVS_EX_FULLROWSELECT.
Module: wine Branch: master Commit: 89f0bdff6e96a82adfa06c8b57c4abcea7ba327a URL: http://source.winehq.org/git/wine.git/?a=commit;h=89f0bdff6e96a82adfa06c8b57... Author: Nikolay Sivov <bunglehead(a)gmail.com> Date: Sun Jun 14 20:40:42 2009 +0400 comctl32/listview: Fix some hittest problems on LVS_EX_FULLROWSELECT. --- dlls/comctl32/listview.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c index 2599abd..835f251 100644 --- a/dlls/comctl32/listview.c +++ b/dlls/comctl32/listview.c @@ -6643,6 +6643,8 @@ static INT LISTVIEW_HitTest(const LISTVIEW_INFO *infoPtr, LPLVHITTESTINFO lpht, /* for top/bottom only */ bounds.left = LVIR_BOUNDS; LISTVIEW_GetItemRect(infoPtr, iItem, &bounds); + opt.x = lpht->pt.x - Origin.x; + opt.y = lpht->pt.y; for (j = 0; j < DPA_GetPtrCount(infoPtr->hdpaColumns); j++) { @@ -6650,7 +6652,7 @@ static INT LISTVIEW_HitTest(const LISTVIEW_INFO *infoPtr, LPLVHITTESTINFO lpht, bounds.left = pRect->left; bounds.right = pRect->right; - if (PtInRect(&bounds, lpht->pt)) + if (PtInRect(&bounds, opt)) { lpht->iSubItem = j; break; @@ -6676,7 +6678,11 @@ static INT LISTVIEW_HitTest(const LISTVIEW_INFO *infoPtr, LPLVHITTESTINFO lpht, opt.y = lpht->pt.y - Position.y - Origin.y; if (infoPtr->uView == LV_VIEW_DETAILS) + { rcBounds = rcBox; + if (infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT) + opt.x = lpht->pt.x - Origin.x; + } else { UnionRect(&rcBounds, &rcIcon, &rcLabel);
participants (1)
-
Alexandre Julliard