Module: wine Branch: master Commit: 71d77d98e276cb0036c409fee99eaab7391cae94 URL: http://source.winehq.org/git/wine.git/?a=commit;h=71d77d98e276cb0036c409fee9...
Author: Mikolaj Zalewski mikolajz@google.com Date: Thu Aug 30 11:45:51 2007 -0700
user32: combo: CB_SETITEMHEIGHT should make the edit area 2px higher than the item (with testcase).
---
dlls/user32/combo.c | 2 +- dlls/user32/tests/combo.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletions(-)
diff --git a/dlls/user32/combo.c b/dlls/user32/combo.c index 084e612..1e801a3 100644 --- a/dlls/user32/combo.c +++ b/dlls/user32/combo.c @@ -1640,7 +1640,7 @@ static LRESULT COMBO_SetItemHeight( LPHEADCOMBO lphc, INT index, INT height ) { if( height < 32768 ) { - lphc->editHeight = height; + lphc->editHeight = height + 2; /* Is the 2 for 2*EDIT_CONTROL_PADDING? */
/* * Redo the layout of the control. diff --git a/dlls/user32/tests/combo.c b/dlls/user32/tests/combo.c index 642c49d..f7cb467 100644 --- a/dlls/user32/tests/combo.c +++ b/dlls/user32/tests/combo.c @@ -69,6 +69,29 @@ static int is_font_installed(const char *name) return ret; }
+static void test_setitemheight(DWORD style) +{ + HWND hCombo = build_combo(style); + RECT r; + int i; + + trace("Style %x\n", style); + GetClientRect(hCombo, &r); + expect_rect(r, 0, 0, 100, 24); + SendMessageA(hCombo, CB_GETDROPPEDCONTROLRECT, 0, (LPARAM)&r); + MapWindowPoints(HWND_DESKTOP, hMainWnd, (LPPOINT)&r, 2); + todo_wine expect_rect(r, 5, 5, 105, 105); + + for (i = 1; i < 30; i++) + { + SendMessage(hCombo, CB_SETITEMHEIGHT, -1, i); + GetClientRect(hCombo, &r); + expect_eq(r.bottom - r.top, i + 6, int, "%d"); + } + + DestroyWindow(hCombo); +} + static void test_setfont(DWORD style) { HWND hCombo = build_combo(style); @@ -224,6 +247,8 @@ START_TEST(combo)
test_setfont(CBS_DROPDOWN); test_setfont(CBS_DROPDOWNLIST); + test_setitemheight(CBS_DROPDOWN); + test_setitemheight(CBS_DROPDOWNLIST); test_CBN_SELCHANGE();
DestroyWindow(hMainWnd);