[USER32] Add support for navigating a group of radio buttons using a keyboard.

Import Wine commit:
b1b8fb77be

"user32: Add support for navigating a group of radio buttons using a keyboard.
The patch approximates the behaviour observed in the message tests
but still doesn't make the message tests pass without failures.
"
by Dmitry Timoshkov.
See bug report https://bugs.winehq.org/show_bug.cgi?id=16845
This commit is contained in:
Hermès Bélusca-Maïto 2019-03-24 17:18:06 +01:00
parent 780f2ba215
commit 048c8c1605
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0

View file

@ -2556,8 +2556,16 @@ IsDialogMessageW(
if (!(dlgCode & DLGC_WANTARROWS))
{
BOOL fPrevious = (lpMsg->wParam == VK_LEFT || lpMsg->wParam == VK_UP);
HWND hwndNext = GetNextDlgGroupItem (hDlg, GetFocus(), fPrevious );
SendMessageW( hDlg, WM_NEXTDLGCTL, (WPARAM)hwndNext, 1 );
HWND hwndNext = GetNextDlgGroupItem( hDlg, lpMsg->hwnd, fPrevious );
if (hwndNext && SendMessageW( hwndNext, WM_GETDLGCODE, lpMsg->wParam, (LPARAM)lpMsg ) == (DLGC_BUTTON | DLGC_RADIOBUTTON))
{
SetFocus( hwndNext );
if ((GetWindowLongW( hwndNext, GWL_STYLE ) & BS_TYPEMASK) == BS_AUTORADIOBUTTON &&
SendMessageW( hwndNext, BM_GETCHECK, 0, 0 ) != BST_CHECKED)
SendMessageW( hwndNext, BM_CLICK, 1, 0 );
}
else
SendMessageW( hDlg, WM_NEXTDLGCTL, (WPARAM)hwndNext, 1 );
return TRUE;
}
break;