comctl32/syslink: Fix return value for LM_GETIDEALSIZE.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
8138ac9a3c
commit
57dec76778
|
@ -1472,7 +1472,7 @@ static BOOL SYSLINK_NoNextLink (const SYSLINK_INFO *infoPtr, BOOL Prev)
|
||||||
* SYSLINK_GetIdealSize
|
* SYSLINK_GetIdealSize
|
||||||
* Calculates the ideal size of a link control at a given maximum width.
|
* Calculates the ideal size of a link control at a given maximum width.
|
||||||
*/
|
*/
|
||||||
static VOID SYSLINK_GetIdealSize (const SYSLINK_INFO *infoPtr, int cxMaxWidth, LPSIZE lpSize)
|
static LONG SYSLINK_GetIdealSize (const SYSLINK_INFO *infoPtr, int cxMaxWidth, SIZE *lpSize)
|
||||||
{
|
{
|
||||||
RECT rc;
|
RECT rc;
|
||||||
HDC hdc;
|
HDC hdc;
|
||||||
|
@ -1493,6 +1493,8 @@ static VOID SYSLINK_GetIdealSize (const SYSLINK_INFO *infoPtr, int cxMaxWidth, L
|
||||||
lpSize->cx = rc.right;
|
lpSize->cx = rc.right;
|
||||||
lpSize->cy = rc.bottom;
|
lpSize->cy = rc.bottom;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return rc.bottom;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
|
@ -1664,10 +1666,8 @@ static LRESULT WINAPI SysLinkWindowProc(HWND hwnd, UINT message,
|
||||||
|
|
||||||
case LM_GETIDEALHEIGHT:
|
case LM_GETIDEALHEIGHT:
|
||||||
if (lParam)
|
if (lParam)
|
||||||
{
|
return SYSLINK_GetIdealSize(infoPtr, (int)wParam, (SIZE *)lParam);
|
||||||
/* LM_GETIDEALSIZE */
|
else
|
||||||
SYSLINK_GetIdealSize(infoPtr, (int)wParam, (LPSIZE)lParam);
|
|
||||||
}
|
|
||||||
return SYSLINK_GetIdealHeight(infoPtr);
|
return SYSLINK_GetIdealHeight(infoPtr);
|
||||||
|
|
||||||
case WM_SETFOCUS:
|
case WM_SETFOCUS:
|
||||||
|
|
|
@ -205,6 +205,43 @@ static void test_create_syslink(void)
|
||||||
DestroyWindow(hWndSysLink);
|
DestroyWindow(hWndSysLink);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_LM_GETIDEALHEIGHT(void)
|
||||||
|
{
|
||||||
|
HWND hwnd;
|
||||||
|
LONG ret;
|
||||||
|
|
||||||
|
hwnd = create_syslink(WS_CHILD | WS_TABSTOP | WS_VISIBLE, hWndParent);
|
||||||
|
ok(hwnd != NULL, "Failed to create SysLink window.\n");
|
||||||
|
|
||||||
|
ret = SendMessageA(hwnd, LM_GETIDEALHEIGHT, 0, 0);
|
||||||
|
ok(ret > 0, "Unexpected ideal height, %d.\n", ret);
|
||||||
|
|
||||||
|
DestroyWindow(hwnd);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_LM_GETIDEALSIZE(void)
|
||||||
|
{
|
||||||
|
HWND hwnd;
|
||||||
|
LONG ret;
|
||||||
|
SIZE sz;
|
||||||
|
|
||||||
|
hwnd = create_syslink(WS_CHILD | WS_TABSTOP | WS_VISIBLE, hWndParent);
|
||||||
|
ok(hwnd != NULL, "Failed to create SysLink window.\n");
|
||||||
|
|
||||||
|
memset(&sz, 0, sizeof(sz));
|
||||||
|
ret = SendMessageA(hwnd, LM_GETIDEALSIZE, 0, (LPARAM)&sz);
|
||||||
|
ok(ret > 0, "Unexpected return value, %d.\n", ret);
|
||||||
|
if (sz.cy == 0)
|
||||||
|
win_skip("LM_GETIDEALSIZE is not supported.\n");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ok(sz.cx > 5, "Unexpected ideal width, %d.\n", sz.cx);
|
||||||
|
ok(sz.cy == ret, "Unexpected ideal height, %d.\n", sz.cy);
|
||||||
|
}
|
||||||
|
|
||||||
|
DestroyWindow(hwnd);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(syslink)
|
START_TEST(syslink)
|
||||||
{
|
{
|
||||||
ULONG_PTR ctx_cookie;
|
ULONG_PTR ctx_cookie;
|
||||||
|
@ -231,6 +268,8 @@ START_TEST(syslink)
|
||||||
flush_events();
|
flush_events();
|
||||||
|
|
||||||
test_create_syslink();
|
test_create_syslink();
|
||||||
|
test_LM_GETIDEALHEIGHT();
|
||||||
|
test_LM_GETIDEALSIZE();
|
||||||
|
|
||||||
DestroyWindow(hWndParent);
|
DestroyWindow(hWndParent);
|
||||||
unload_v6_module(ctx_cookie, hCtx);
|
unload_v6_module(ctx_cookie, hCtx);
|
||||||
|
|
Loading…
Reference in New Issue