From ebdf2fd254b877b05b1d3b1a607c1ba5684a03be Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Mon, 3 Aug 2009 02:32:37 +0400 Subject: [PATCH] comctl32/listview: Offset every but LVIR_BOUNDS rectangles to column bound in details view. --- dlls/comctl32/listview.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c index 59f70a24bc1..ea96b8aa5ee 100644 --- a/dlls/comctl32/listview.c +++ b/dlls/comctl32/listview.c @@ -6258,6 +6258,7 @@ static BOOL LISTVIEW_GetItemRect(const LISTVIEW_INFO *infoPtr, INT nItem, LPRECT BOOL doLabel = TRUE, oversizedBox = FALSE; POINT Position, Origin; LVITEMW lvItem; + LONG mode; TRACE("(hwnd=%p, nItem=%d, lprc=%p)\n", infoPtr->hwndSelf, nItem, lprc); @@ -6294,6 +6295,8 @@ static BOOL LISTVIEW_GetItemRect(const LISTVIEW_INFO *infoPtr, INT nItem, LPRECT if (infoPtr->uView == LV_VIEW_DETAILS && (infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT) && lprc->left == LVIR_SELECTBOUNDS) lprc->left = LVIR_BOUNDS; + + mode = lprc->left; switch(lprc->left) { case LVIR_ICON: @@ -6318,7 +6321,13 @@ static BOOL LISTVIEW_GetItemRect(const LISTVIEW_INFO *infoPtr, INT nItem, LPRECT } if (infoPtr->uView == LV_VIEW_DETAILS) - OffsetRect(lprc, Origin.x, Position.y + Origin.y); + { + if (mode != LVIR_BOUNDS) + OffsetRect(lprc, Origin.x + LISTVIEW_GetColumnInfo(infoPtr, 0)->rcHeader.left, + Position.y + Origin.y); + else + OffsetRect(lprc, Origin.x, Position.y + Origin.y); + } else OffsetRect(lprc, Position.x + Origin.x, Position.y + Origin.y);