X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=win32ss%2Fuser%2Fuser32%2Fwindows%2Fdialog.c;h=4770169e99a3b83e3aaa6fbd9c2c66f7f4cdba29;hp=0fc31a71fe5150834578b3a84f90551ba26a0b4c;hb=048c8c1605e41600a2610c46b8d5eddca4e50c86;hpb=780f2ba2159575f4f0edf1a97475a5edaa2f7a6b diff --git a/win32ss/user/user32/windows/dialog.c b/win32ss/user/user32/windows/dialog.c index 0fc31a71fe5..4770169e99a 100644 --- a/win32ss/user/user32/windows/dialog.c +++ b/win32ss/user/user32/windows/dialog.c @@ -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;