Nikolay Sivov : comctl32/listview: Fix some hittest problems on LVS_EX_FULLROWSELECT.
Alexandre Julliard
julliard at winehq.org
Mon Jun 15 07:59:12 CDT 2009
Module: wine
Branch: master
Commit: 89f0bdff6e96a82adfa06c8b57c4abcea7ba327a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=89f0bdff6e96a82adfa06c8b57c4abcea7ba327a
Author: Nikolay Sivov <bunglehead at 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);
More information about the wine-cvs
mailing list