Author: gadamopoulos
Date: Fri Mar 3 13:56:49 2017
New Revision: 74037
URL:
http://svn.reactos.org/svn/reactos?rev=74037&view=rev
Log:
[COMCTL32]: Fix all tests for BCM_GETIDEALSIZE that we have so far. (It still returns a
wrong result for the start button with lautus).
Modified:
trunk/reactos/dll/win32/comctl32/button.c
Modified: trunk/reactos/dll/win32/comctl32/button.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/button.…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/button.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/button.c [iso-8859-1] Fri Mar 3 13:56:49 2017
@@ -315,16 +315,13 @@
WCHAR *text;
HFONT hFont = 0, hPrevFont = 0;
SIZE TextSize, ImageSize, ButtonSize;
+ BOOL ret = FALSE;
pdata = _GetButtonData(hwnd);
text = get_button_text( hwnd );
hdc = GetDC(hwnd);
if (!pdata || !text || !hdc || !text[0])
- {
- psize->cx = 100;
- psize->cy = 100;
goto cleanup;
- }
/* FIXME : Should use GetThemeTextExtent but unfortunately uses DrawTextW which is
broken */
if (theme)
@@ -381,6 +378,7 @@
}
*psize = ButtonSize;
+ ret = TRUE;
cleanup:
if (hFont)
@@ -390,7 +388,7 @@
if (hdc)
ReleaseDC(hwnd, hdc);
- return TRUE;
+ return ret;
}
#endif
@@ -575,17 +573,24 @@
case BCM_GETIDEALSIZE:
{
HTHEME theme = GetWindowTheme(hWnd);
-
- if (btn_type != BS_PUSHBUTTON && btn_type != BS_DEFPUSHBUTTON)
+ BOOL ret = FALSE;
+ SIZE* pSize = (SIZE*)lParam;
+
+ if (btn_type == BS_PUSHBUTTON ||
+ btn_type == BS_DEFPUSHBUTTON ||
+ btn_type == BS_USERBUTTON)
{
- SIZE* pSize = (SIZE*)lParam;
+ ret = BUTTON_GetIdealSize(theme, hWnd, pSize);
+ }
+
+ if (!ret)
+ {
GetClientRect(hWnd, &rect);
pSize->cx = rect.right;
pSize->cy = rect.bottom;
- return TRUE;
}
- return BUTTON_GetIdealSize(theme, hWnd, (SIZE*)lParam);
+ return TRUE;
}
}