From: Paul Gofman pgofman@codeweavers.com
--- dlls/comctl32/combo.c | 3 ++- dlls/comctl32/tests/combo.c | 7 +++---- 2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/dlls/comctl32/combo.c b/dlls/comctl32/combo.c index 1094132826b..b85066b6f6d 100644 --- a/dlls/comctl32/combo.c +++ b/dlls/comctl32/combo.c @@ -1439,7 +1439,8 @@ static void COMBO_Size( HEADCOMBO *lphc ) static void COMBO_Font( LPHEADCOMBO lphc, HFONT hFont, BOOL bRedraw ) { lphc->hFont = hFont; - lphc->item_height = combo_get_text_height(lphc); + if (!CB_OWNERDRAWN(lphc)) + lphc->item_height = combo_get_text_height(lphc);
/* * Propagate to owned windows. diff --git a/dlls/comctl32/tests/combo.c b/dlls/comctl32/tests/combo.c index 61516fd4aa9..5af530ad5be 100644 --- a/dlls/comctl32/tests/combo.c +++ b/dlls/comctl32/tests/combo.c @@ -770,7 +770,7 @@ static void test_combo_setfont(DWORD style) SendMessageA(hCombo, WM_SETFONT, (WPARAM)hFont1, FALSE); GetClientRect(hCombo, &r); expected_height = style & CBS_OWNERDRAWFIXED ? initial_height : 18; - todo_wine_if(style & CBS_OWNERDRAWFIXED) expect_rect(r, 0, 0, 100, expected_height); + expect_rect(r, 0, 0, 100, expected_height); SendMessageA(hCombo, CB_GETDROPPEDCONTROLRECT, 0, (LPARAM)&r); MapWindowPoints(HWND_DESKTOP, hMainWnd, (LPPOINT)&r, 2);
@@ -786,7 +786,7 @@ static void test_combo_setfont(DWORD style) SendMessageA(hCombo, WM_SETFONT, (WPARAM)hFont2, FALSE); GetClientRect(hCombo, &r); expected_height = style & CBS_OWNERDRAWFIXED ? initial_height : 16; - todo_wine_if(style & CBS_OWNERDRAWFIXED) expect_rect(r, 0, 0, 100, expected_height); + expect_rect(r, 0, 0, 100, expected_height); SendMessageA(hCombo, CB_GETDROPPEDCONTROLRECT, 0, (LPARAM)&r); MapWindowPoints(HWND_DESKTOP, hMainWnd, (LPPOINT)&r, 2);
@@ -802,7 +802,7 @@ static void test_combo_setfont(DWORD style) SendMessageA(hCombo, WM_SETFONT, (WPARAM)hFont1, FALSE); GetClientRect(hCombo, &r); expected_height = style & CBS_OWNERDRAWFIXED ? initial_height : 18; - todo_wine_if(style & CBS_OWNERDRAWFIXED) expect_rect(r, 0, 0, 100, expected_height); + expect_rect(r, 0, 0, 100, expected_height); SendMessageA(hCombo, CB_GETDROPPEDCONTROLRECT, 0, (LPARAM)&r); MapWindowPoints(HWND_DESKTOP, hMainWnd, (LPPOINT)&r, 2); if (style & CBS_OWNERDRAWFIXED) @@ -831,7 +831,6 @@ static void test_combo_setfont(DWORD style) expected_height = initial_height; else expected_height = (height + 8); - todo_wine_if(style & CBS_OWNERDRAWFIXED && initial_height != height + 8) ok((r.bottom - r.top) == expected_height, "Unexpected client rect height %ld, expected %d.\n", r.bottom - r.top, expected_height); SendMessageA(hCombo, WM_SETFONT, 0, FALSE);