diff --git a/dlls/user32/menu.c b/dlls/user32/menu.c index 058cf0fee6f..b7cfe1c2cda 100644 --- a/dlls/user32/menu.c +++ b/dlls/user32/menu.c @@ -1504,11 +1504,13 @@ static void MENU_DrawMenuItem( HWND hwnd, HMENU hmenu, HWND hwndOwner, HDC hdc, bmprc.left = 3; else bmprc.left = lpitem->text ? menucharsize.cx : 0; - } else { - bmprc.left = 4; - if( !(menu->dwStyle & ( MNS_CHECKORBMP | MNS_NOCHECK))) - bmprc.left += GetSystemMetrics( SM_CXMENUCHECK); } + else if (menu->dwStyle & MNS_NOCHECK) + bmprc.left = 4; + else if (menu->dwStyle & MNS_CHECKORBMP) + bmprc.left = 2; + else + bmprc.left = 4 + GetSystemMetrics(SM_CXMENUCHECK); bmprc.right = bmprc.left + lpitem->bmpsize.cx; if( menuBar && !(lpitem->hbmpItem == HBMMENU_CALLBACK)) bmprc.top = 0; diff --git a/dlls/user32/tests/menu.c b/dlls/user32/tests/menu.c index 5ccaba4e125..0eabe507251 100644 --- a/dlls/user32/tests/menu.c +++ b/dlls/user32/tests/menu.c @@ -456,12 +456,8 @@ static void test_mbs_help( int ispop, int hassub, int mnuopt, expect = 4; else /* mnuopt == 2 */ expect = 2; - if (ispop && mnuopt == 2) - todo_wine ok( expect == MOD_rc[0].left, - "bitmap left is %d expected %d\n", MOD_rc[0].left, expect); - else - ok( expect == MOD_rc[0].left, - "bitmap left is %d expected %d\n", MOD_rc[0].left, expect); + ok( expect == MOD_rc[0].left, + "bitmap left is %d expected %d\n", MOD_rc[0].left, expect); failed = failed || !(expect == MOD_rc[0].left); /* vertical */ expect = (rc.bottom - rc.top - MOD_rc[0].bottom + MOD_rc[0].top) / 2;