comctl32/listview: Don't offset subitem rectangles with item padding returned by LVM_GETSUBITEMRECT.
This commit is contained in:
parent
6101a48089
commit
3cd15e5db5
|
@ -2044,7 +2044,7 @@ static void LISTVIEW_GetItemMetrics(const LISTVIEW_INFO *infoPtr, const LVITEMW
|
||||||
{
|
{
|
||||||
Icon.left = Box.left + state_width;
|
Icon.left = Box.left + state_width;
|
||||||
|
|
||||||
if (uView == LVS_REPORT)
|
if (uView == LVS_REPORT && lpLVItem->iSubItem == 0)
|
||||||
Icon.left += REPORT_MARGINX;
|
Icon.left += REPORT_MARGINX;
|
||||||
|
|
||||||
Icon.top = Box.top;
|
Icon.top = Box.top;
|
||||||
|
@ -2145,7 +2145,7 @@ calc_label:
|
||||||
Label.right = lpColumnInfo->rcHeader.right;
|
Label.right = lpColumnInfo->rcHeader.right;
|
||||||
Label.bottom = Label.top + infoPtr->nItemHeight;
|
Label.bottom = Label.top + infoPtr->nItemHeight;
|
||||||
}
|
}
|
||||||
else /* LVS_SMALLICON, LVS_LIST or LVS_REPORT */
|
else /* LVS_SMALLICON or LVS_LIST */
|
||||||
{
|
{
|
||||||
Label.left = Icon.right;
|
Label.left = Icon.right;
|
||||||
Label.top = Box.top;
|
Label.top = Box.top;
|
||||||
|
@ -6077,7 +6077,7 @@ static BOOL LISTVIEW_GetSubItemRect(const LISTVIEW_INFO *infoPtr, INT nItem, LPR
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
OffsetRect(lprc, Position.x, Position.y);
|
OffsetRect(lprc, 0, Position.y);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1835,32 +1835,26 @@ todo_wine
|
||||||
rect.right = rect.bottom = 0;
|
rect.right = rect.bottom = 0;
|
||||||
r = SendMessage(hwnd, LVM_GETSUBITEMRECT, 0, (LPARAM)&rect);
|
r = SendMessage(hwnd, LVM_GETSUBITEMRECT, 0, (LPARAM)&rect);
|
||||||
ok(r != 0, "Expected not-null LRESULT\n");
|
ok(r != 0, "Expected not-null LRESULT\n");
|
||||||
todo_wine {
|
|
||||||
expect(100, rect.left);
|
expect(100, rect.left);
|
||||||
expect(250, rect.right);
|
expect(250, rect.right);
|
||||||
}
|
|
||||||
|
|
||||||
rect.left = LVIR_ICON;
|
rect.left = LVIR_ICON;
|
||||||
rect.top = 1;
|
rect.top = 1;
|
||||||
rect.right = rect.bottom = 0;
|
rect.right = rect.bottom = 0;
|
||||||
r = SendMessage(hwnd, LVM_GETSUBITEMRECT, 0, (LPARAM)&rect);
|
r = SendMessage(hwnd, LVM_GETSUBITEMRECT, 0, (LPARAM)&rect);
|
||||||
ok(r != 0, "Expected not-null LRESULT\n");
|
ok(r != 0, "Expected not-null LRESULT\n");
|
||||||
/* no icon attached - zero width rectangle */
|
/* no icon attached - zero width rectangle, with no left padding */
|
||||||
todo_wine {
|
|
||||||
expect(100, rect.left);
|
expect(100, rect.left);
|
||||||
expect(100, rect.right);
|
expect(100, rect.right);
|
||||||
}
|
|
||||||
|
|
||||||
rect.left = LVIR_LABEL;
|
rect.left = LVIR_LABEL;
|
||||||
rect.top = 1;
|
rect.top = 1;
|
||||||
rect.right = rect.bottom = 0;
|
rect.right = rect.bottom = 0;
|
||||||
r = SendMessage(hwnd, LVM_GETSUBITEMRECT, 0, (LPARAM)&rect);
|
r = SendMessage(hwnd, LVM_GETSUBITEMRECT, 0, (LPARAM)&rect);
|
||||||
ok(r != 0, "Expected not-null LRESULT\n");
|
ok(r != 0, "Expected not-null LRESULT\n");
|
||||||
/* should equal to LVIR_BOUNDS */
|
/* same as full LVIR_BOUNDS */
|
||||||
todo_wine {
|
|
||||||
expect(100, rect.left);
|
expect(100, rect.left);
|
||||||
expect(250, rect.right);
|
expect(250, rect.right);
|
||||||
}
|
|
||||||
|
|
||||||
DestroyWindow(hwnd);
|
DestroyWindow(hwnd);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue