mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-31 10:41:12 +00:00
comctl32/listview: Fix select rectangle calculation for empty text items.
This commit is contained in:
parent
05c4d0a8b0
commit
216ca479f2
2 changed files with 12 additions and 4 deletions
|
@ -360,6 +360,8 @@ typedef struct tagLISTVIEW_INFO
|
|||
|
||||
/* default label width for items in list and small icon display modes */
|
||||
#define DEFAULT_LABEL_WIDTH 40
|
||||
/* maximum select rectangle width for empty text item in LV_VIEW_DETAILS */
|
||||
#define MAX_EMPTYTEXT_SELECT_WIDTH 80
|
||||
|
||||
/* default column width for items in list display mode */
|
||||
#define DEFAULT_COLUMN_WIDTH 128
|
||||
|
@ -2235,7 +2237,9 @@ static void LISTVIEW_GetItemMetrics(const LISTVIEW_INFO *infoPtr, const LVITEMW
|
|||
|
||||
DrawTextW (hdc, lpLVItem->pszText, -1, &rcText, uFormat | DT_CALCRECT);
|
||||
|
||||
labelSize.cx = min(rcText.right - rcText.left + TRAILING_LABEL_PADDING, infoPtr->nItemWidth);
|
||||
if (rcText.right != rcText.left)
|
||||
labelSize.cx = min(rcText.right - rcText.left + TRAILING_LABEL_PADDING, infoPtr->nItemWidth);
|
||||
|
||||
labelSize.cy = rcText.bottom - rcText.top;
|
||||
|
||||
SelectObject(hdc, hOldFont);
|
||||
|
@ -2288,7 +2292,11 @@ calc_label:
|
|||
SelectBox.left = Icon.left;
|
||||
SelectBox.top = Box.top;
|
||||
SelectBox.bottom = Box.bottom;
|
||||
SelectBox.right = min(Label.left + labelSize.cx, Label.right);
|
||||
|
||||
if (labelSize.cx)
|
||||
SelectBox.right = min(Label.left + labelSize.cx, Label.right);
|
||||
else
|
||||
SelectBox.right = min(Label.left + MAX_EMPTYTEXT_SELECT_WIDTH, Label.right);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -3067,7 +3067,7 @@ static void test_getitemrect(void)
|
|||
expect(TRUE, r);
|
||||
/* padding, column width */
|
||||
expect(2, rect.left);
|
||||
todo_wine expect(50, rect.right);
|
||||
expect(50, rect.right);
|
||||
|
||||
/* try with indentation */
|
||||
item.mask = LVIF_INDENT;
|
||||
|
@ -3093,7 +3093,7 @@ static void test_getitemrect(void)
|
|||
expect(TRUE, r);
|
||||
/* padding + 1 icon width, column width */
|
||||
expect(2 + 16, rect.left);
|
||||
todo_wine expect(50, rect.right);
|
||||
expect(50, rect.right);
|
||||
|
||||
/* label bounds */
|
||||
rect.left = LVIR_LABEL;
|
||||
|
|
Loading…
Reference in a new issue