Commit e1f67b99 authored by NF Stevens's avatar NF Stevens Committed by Alexandre Julliard

Fixed keystroke accelerators in dialogs which have controls containing

other controls as child windows.
parent fdf6aa4e
...@@ -1010,6 +1010,7 @@ BOOL32 WINAPI EndDialog32( HWND32 hwnd, INT32 retval ) ...@@ -1010,6 +1010,7 @@ BOOL32 WINAPI EndDialog32( HWND32 hwnd, INT32 retval )
static BOOL32 DIALOG_IsAccelerator( HWND32 hwnd, HWND32 hwndDlg, WPARAM32 vKey ) static BOOL32 DIALOG_IsAccelerator( HWND32 hwnd, HWND32 hwndDlg, WPARAM32 vKey )
{ {
HWND32 hwndControl = hwnd; HWND32 hwndControl = hwnd;
HWND32 hwndNext;
WND *wndPtr; WND *wndPtr;
BOOL32 RetVal = FALSE; BOOL32 RetVal = FALSE;
INT32 dlgCode; INT32 dlgCode;
...@@ -1075,11 +1076,24 @@ static BOOL32 DIALOG_IsAccelerator( HWND32 hwnd, HWND32 hwndDlg, WPARAM32 vKey ) ...@@ -1075,11 +1076,24 @@ static BOOL32 DIALOG_IsAccelerator( HWND32 hwnd, HWND32 hwndDlg, WPARAM32 vKey )
} }
} }
} }
hwndControl = GetWindow32( hwndControl, GW_HWNDNEXT ); hwndNext = GetWindow32( hwndControl, GW_CHILD );
if (!hwndControl) if (!hwndNext)
{ {
hwndControl = GetWindow32( hwndDlg, GW_CHILD ); hwndNext = GetWindow32( hwndControl, GW_HWNDNEXT );
} }
while (!hwndNext)
{
hwndControl = GetParent32( hwndControl );
if (hwndControl == hwndDlg)
{
hwndNext = GetWindow32( hwndDlg, GW_CHILD );
}
else
{
hwndNext = GetWindow32( hwndControl, GW_HWNDNEXT );
}
}
hwndControl = hwndNext;
} }
while (hwndControl != hwnd); while (hwndControl != hwnd);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment