From a4b73d43cd7aa5d294d500a85206bc703830b878 Mon Sep 17 00:00:00 2001 From: Sheri Steeves Date: Thu, 15 Jun 2000 01:00:42 +0000 Subject: [PATCH] Check again for GetNextDlgTabItem after return from WM_INITDIALOG message in dialog creation. --- windows/dialog.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/windows/dialog.c b/windows/dialog.c index a838481fd4..c02c7f65e5 100644 --- a/windows/dialog.c +++ b/windows/dialog.c @@ -792,14 +792,22 @@ HWND DIALOG_CreateIndirect( HINSTANCE hInst, LPCSTR dlgTemplate, hwndPreInitFocus = GetFocus(); if (SendMessageA( hwnd, WM_INITDIALOG, (WPARAM)dlgInfo->hwndFocus, param )) + { + /* check where the focus is again, some controls status might have changed in + WM_INITDIALOG */ + dlgInfo->hwndFocus = GetNextDlgTabItem( hwnd, 0, FALSE); SetFocus( dlgInfo->hwndFocus ); - else - { - /* If the dlgproc has returned FALSE (indicating handling of keyboard focus) - but the focus has not changed, set the focus where we expect it. */ + } + else + { + /* If the dlgproc has returned FALSE (indicating handling of keyboard focus) + but the focus has not changed, set the focus where we expect it. */ if ( (wndPtr->dwStyle & WS_VISIBLE) && ( GetFocus() == hwndPreInitFocus ) ) + { + dlgInfo->hwndFocus = GetNextDlgTabItem( hwnd, 0, FALSE); SetFocus( dlgInfo->hwndFocus ); - } + } + } if (template.style & WS_VISIBLE && !(wndPtr->dwStyle & WS_VISIBLE)) {