On Mon, Feb 7, 2022 at 11:48 PM Alex Henrie alexhenrie24@gmail.com wrote:
On Mon, Feb 7, 2022 at 11:27 PM Nikolay Sivov nsivov@codeweavers.com wrote:
--- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -1774,7 +1774,7 @@ static const struct message WmModalDialogSeq[] = { { EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam, OBJID_CLIENT, 0 }, { WM_KILLFOCUS, sent|parent }, { WM_IME_SETCONTEXT, sent|parent|wparam|optional, 0 },
- { EVENT_OBJECT_STATECHANGE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 },
- { EVENT_OBJECT_STATECHANGE, winevent_hook|wparam|lparam, 0, 0 }, { WM_ENABLE, sent|parent|wparam, 0 }, { HCBT_CREATEWND, hook }, { EVENT_OBJECT_REORDER, winevent_hook|wparam|lparam|optional, 0, 0 }, /* Not sent on Win10. */
Doesn't this still pass in wine, without comctl32 change, with or without winevent_hook_todo? I see we have winetest_platform checks around winevent_hook_todo.
I don't think the platform check has anything to do with it, but I just noticed that all of these tests pass todo=TRUE to ok_sequence, which means that they do indeed pass whether or not EVENT_OBJECT_STATECHANGE is specifically marked winevent_hook_todo. So you're right, these are not good tests for the feature I'm trying to implement.
This must be what you were looking at:
/* * silently drop hook messages if there is no support for them, mark * winevent todo's. */ else if ((expected->flags & optional) || ((expected->flags & hook) && !hCBT_hook) || ((expected->flags & winevent_hook) && !hEvent_hook) || ((expected->flags & kbd_hook) && !hKBD_hook) || ((expected->flags & winevent_hook_todo) && !strcmp(winetest_platform, "wine")))
Apparently ok_sequence treats all hooks as optional? That doesn't seem helpful...
-Alex