Commit 57dec767 authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

comctl32/syslink: Fix return value for LM_GETIDEALSIZE.

parent 8138ac9a
...@@ -1472,7 +1472,7 @@ static BOOL SYSLINK_NoNextLink (const SYSLINK_INFO *infoPtr, BOOL Prev) ...@@ -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 ...@@ -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,11 +1666,9 @@ static LRESULT WINAPI SysLinkWindowProc(HWND hwnd, UINT message, ...@@ -1664,11 +1666,9 @@ 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:
return SYSLINK_SetFocus(infoPtr); return SYSLINK_SetFocus(infoPtr);
......
...@@ -205,6 +205,43 @@ static void test_create_syslink(void) ...@@ -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) ...@@ -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);
......
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