/* globals to communicate between test and wndproc */
static BOOL bMenuVisible;
+static BOOL got_input;
static HMENU hMenus[4];
#define MOD_SIZE 10
}
case WM_ENTERIDLE:
{
- ok( lparam, "Menu window handle is NULL!\n");
+ ok( lparam || broken(!lparam), /* win9x, nt4 */
+ "Menu window handle is NULL!\n");
PostMessage(hwnd, WM_CANCELMODE, 0, 0);
return TRUE;
}
ok(ret, "DrawMenuBar failed with error %d\n", GetLastError());
}
ret = IsMenu(GetMenu(hwnd));
- ok(!ret, "Menu handle should have been destroyed\n");
+ ok(!ret || broken(ret) /* nt4 */, "Menu handle should have been destroyed\n");
SendMessage(hwnd, WM_SYSCOMMAND, SC_KEYMENU, 0);
/* did we process the WM_INITMENU message? */
{
int elapsed = 0;
+ got_input = i && menu_tests[i-1].bMenuVisible;
+
if (menu_tests[i].type == INPUT_KEYBOARD)
for (j = 0; menu_tests[i].wVk[j] != 0; j++)
send_key(menu_tests[i].wVk[j]);
Sleep(20);
}
+ if (!got_input)
+ {
+ skip( "test %u: didn't receive input\n", i );
+ return 0;
+ }
+
if (menu_tests[i]._todo_wine)
{
todo_wine {
case WM_EXITMENULOOP:
bMenuVisible = FALSE;
break;
+ case WM_KEYDOWN:
+ case WM_SYSKEYDOWN:
+ case WM_MOUSEMOVE:
+ case WM_LBUTTONDOWN:
+ case WM_LBUTTONUP:
+ case WM_NCMOUSEMOVE:
+ case WM_NCLBUTTONDOWN:
+ case WM_NCLBUTTONUP:
+ got_input = TRUE;
+ /* fall through */
default:
return( DefWindowProcA( hWnd, msg, wParam, lParam ) );
}