[PATCH] comctl32: Send EVENT_OBJECT_STATECHANGE when checking a checkbox

Nikolay Sivov nsivov at codeweavers.com
Tue Feb 8 00:27:27 CST 2022



On 2/8/22 09:17, Alex Henrie wrote:
> The NVDA screen reader needs this.
>
> Signed-off-by: Alex Henrie <alexhenrie24 at gmail.com>
> ---
>   dlls/comctl32/button.c  |  1 +
>   dlls/user32/tests/msg.c | 18 +++++++++---------
>   2 files changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/dlls/comctl32/button.c b/dlls/comctl32/button.c
> index 88b48a4a5c0..faf0212b256 100644
> --- a/dlls/comctl32/button.c
> +++ b/dlls/comctl32/button.c
> @@ -656,6 +656,7 @@ static LRESULT CALLBACK BUTTON_WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, L
>               break;
>           }
>           SendMessageW( hWnd, BM_SETSTATE, FALSE, 0 );
> +        NotifyWinEvent( EVENT_OBJECT_STATECHANGE, hWnd, OBJID_CLIENT, 0 );
>           GetClientRect( hWnd, &rect );
>   	if (uMsg == WM_KEYUP || PtInRect( &rect, pt ))
>           {
> diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
> index f0e0d0fba76..cb8d4f07fe7 100644
> --- 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.



More information about the wine-devel mailing list