generate size event when the dialog is shown for consistency with frames and other ports (bug 1961671); this also makes workaround for showing the gripper in the previous revision unnecessary

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-05-14 01:30:49 +00:00
parent 952f8d3c7a
commit 2bc44d6257

View File

@@ -256,13 +256,15 @@ bool wxDialog::Show(bool show)
if ( show ) if ( show )
{ {
// dialogs don't get WM_SIZE message after creation unlike most (all?) // dialogs don't get WM_SIZE message from ::ShowWindow() for some
// other windows and so could start their life non laid out correctly // reason so generate it ourselves for consistency with frames and
// if we didn't call Layout() from here // dialogs in other ports
// //
// NB: normally we should call it just the first time but doing it // NB: normally we should call it just the first time but doing it
// every time is simpler than keeping a flag // every time is simpler than keeping a flag
Layout(); const wxSize size = GetClientSize();
::SendMessage(GetHwnd(), WM_SIZE,
SIZE_RESTORED, MAKELPARAM(size.x, size.y));
} }
return true; return true;
@@ -520,20 +522,6 @@ WXLRESULT wxDialog::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lPar
} }
break; break;
case WM_WINDOWPOSCHANGED:
{
WINDOWPOS * const wp = wx_reinterpret_cast(WINDOWPOS *, lParam);
if ( wp->flags & SWP_SHOWWINDOW )
{
// we should only show it now to ensure that it's really
// positioned underneath under all the other controls in
// the dialog, if we showed it before it could overlap them
if ( m_hGripper )
ShowGripper(true);
}
}
break;
#ifndef __WXMICROWIN__ #ifndef __WXMICROWIN__
case WM_SETCURSOR: case WM_SETCURSOR:
// we want to override the busy cursor for modal dialogs: // we want to override the busy cursor for modal dialogs: