comctl32: Listview fails to add a column if mask=0.
This commit is contained in:
parent
b150ea67a9
commit
f6631265f3
|
@ -6659,7 +6659,16 @@ static INT LISTVIEW_InsertColumnT(LISTVIEW_INFO *infoPtr, INT nColumn,
|
|||
|
||||
ZeroMemory(&hdi, sizeof(HDITEMW));
|
||||
column_fill_hditem(infoPtr, &hdi, nColumn, lpColumn, isW);
|
||||
|
||||
|
||||
/*
|
||||
* A mask not including LVCF_WIDTH turns into a mask of width, width 10
|
||||
* (can be seen in SPY) otherwise column never gets added.
|
||||
*/
|
||||
if (!(lpColumn->mask & LVCF_WIDTH)) {
|
||||
hdi.mask |= HDI_WIDTH;
|
||||
hdi.cxy = 10;
|
||||
}
|
||||
|
||||
/*
|
||||
* when the iSubItem is available Windows copies it to the header lParam. It seems
|
||||
* to happen only in LVM_INSERTCOLUMN - not in LVM_SETCOLUMN
|
||||
|
|
|
@ -676,6 +676,28 @@ static void test_items(void)
|
|||
DestroyWindow(hwnd);
|
||||
}
|
||||
|
||||
static void test_columns(void)
|
||||
{
|
||||
HWND hwnd;
|
||||
LVCOLUMN column;
|
||||
DWORD rc;
|
||||
|
||||
hwnd = CreateWindowEx(0, "SysListView32", "foo", LVS_REPORT,
|
||||
10, 10, 100, 200, hwndparent, NULL, NULL, NULL);
|
||||
ok(hwnd != NULL, "failed to create listview window\n");
|
||||
|
||||
/* Add a column with no mask */
|
||||
memset(&column, 0xaa, sizeof(column));
|
||||
column.mask = 0;
|
||||
rc = ListView_InsertColumn(hwnd, 0, &column);
|
||||
ok(rc==0, "Inserting column with no mask failed with %d\n", rc);
|
||||
|
||||
/* Check its width */
|
||||
rc = ListView_GetColumnWidth(hwnd, 0);
|
||||
ok(rc==10, "Inserting column with no mask failed to set width to 10 with %d\n", rc);
|
||||
|
||||
DestroyWindow(hwnd);
|
||||
}
|
||||
/* test setting imagelist between WM_NCCREATE and WM_CREATE */
|
||||
static WNDPROC listviewWndProc;
|
||||
static HIMAGELIST test_create_imagelist;
|
||||
|
@ -1041,4 +1063,5 @@ START_TEST(listview)
|
|||
test_color();
|
||||
test_item_count();
|
||||
test_item_position();
|
||||
test_columns();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue