git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15795
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
}
// to make the dialog navigation work with the nested panels we must
}
// to make the dialog navigation work with the nested panels we must
- // use this style but, unfortunately, it hangs NT4 in some situations
- // so we shouldn't use it -- even though it means that keyboard accels
- // in, e.g. wxWizard, don't work
-#if 0
if ( flags & wxTAB_TRAVERSAL )
{
*exstyle |= WS_EX_CONTROLPARENT;
}
if ( flags & wxTAB_TRAVERSAL )
{
*exstyle |= WS_EX_CONTROLPARENT;
}
// place edit control from being closed with Escape in a dialog
if ( msg->message != WM_KEYDOWN || msg->wParam != VK_ESCAPE )
{
// place edit control from being closed with Escape in a dialog
if ( msg->message != WM_KEYDOWN || msg->wParam != VK_ESCAPE )
{
- if ( ::IsDialogMessage(GetHwnd(), msg) )
+ // ::IsDialogMessage() can enter in an infinite loop when
+ // WS_EX_CONTROLPARENT is specified and the currently focused
+ // window is disabled or hidden, so don't call it in this case
+ HWND hwndFocus = ::GetFocus();
+ if ( !hwndFocus ||
+ ::IsWindowEnabled(hwndFocus) && ::IsWindowVisible(hwndFocus) )
- // IsDialogMessage() did something...
- return TRUE;
+ if ( ::IsDialogMessage(GetHwnd(), msg) )
+ {
+ // IsDialogMessage() did something...
+ return TRUE;
+ }