Commit 1970556b authored by Brendan McGrath's avatar Brendan McGrath Committed by Alexandre Julliard

comctl32: Fix TAB_SetItemSize.

Windows sets the default width to LOGPIXELSX regardless of the style. It will also always return the previous cx value provided.
parent 7296bcd8
......@@ -2662,19 +2662,20 @@ TAB_SetItemSize (TAB_INFO *infoPtr, INT cx, INT cy)
lResult = MAKELONG(infoPtr->tabWidth, infoPtr->tabHeight);
/* UNDOCUMENTED: If requested Width or Height is 0 this means that program wants to use auto size. */
if (infoPtr->dwStyle & TCS_FIXEDWIDTH && (infoPtr->tabWidth != cx))
if (infoPtr->tabWidth != cx)
{
infoPtr->tabWidth = cx;
bNeedPaint = TRUE;
}
if (infoPtr->tabHeight != cy)
if (infoPtr->tabHeight != cy && cy != 0)
{
if ((infoPtr->fHeightSet = (cy != 0)))
infoPtr->tabHeight = cy;
infoPtr->tabHeight = cy;
bNeedPaint = TRUE;
}
infoPtr->fHeightSet = (cy != 0);
TRACE("was h=%d,w=%d, now h=%d,w=%d\n",
HIWORD(lResult), LOWORD(lResult),
infoPtr->tabHeight, infoPtr->tabWidth);
......@@ -3063,8 +3064,7 @@ static LRESULT TAB_Create (HWND hwnd, LPARAM lParam)
infoPtr->uVItemPadding;
/* Initialize the width of a tab. */
if (infoPtr->dwStyle & TCS_FIXEDWIDTH)
infoPtr->tabWidth = GetDeviceCaps(hdc, LOGPIXELSX);
infoPtr->tabWidth = GetDeviceCaps(hdc, LOGPIXELSX);
infoPtr->tabMinWidth = -1;
......
......@@ -689,10 +689,10 @@ static void test_setitemsize(void)
ReleaseDC(hwTab, hdc);
result = SendMessageA(hwTab, TCM_SETITEMSIZE, 0, MAKELPARAM(50, 20));
todo_wine ok (LOWORD(result) == dpi, "Excepted width to be %d, got %d\n", dpi, LOWORD(result));
ok (LOWORD(result) == dpi, "Excepted width to be %d, got %d\n", dpi, LOWORD(result));
result = SendMessageA(hwTab, TCM_SETITEMSIZE, 0, MAKELPARAM(0, 1));
todo_wine ok (LOWORD(result) == 50, "Excepted width to be 50, got %d\n", LOWORD(result));
ok (LOWORD(result) == 50, "Excepted width to be 50, got %d\n", LOWORD(result));
ok (HIWORD(result) == 20, "Excepted height to be 20, got %d\n", HIWORD(result));
DestroyWindow (hwTab);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment