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:
@@ -256,13 +256,15 @@ bool wxDialog::Show(bool show)
|
||||
|
||||
if ( show )
|
||||
{
|
||||
// dialogs don't get WM_SIZE message after creation unlike most (all?)
|
||||
// other windows and so could start their life non laid out correctly
|
||||
// if we didn't call Layout() from here
|
||||
// dialogs don't get WM_SIZE message from ::ShowWindow() for some
|
||||
// reason so generate it ourselves for consistency with frames and
|
||||
// dialogs in other ports
|
||||
//
|
||||
// NB: normally we should call it just the first time but doing it
|
||||
// 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;
|
||||
@@ -520,20 +522,6 @@ WXLRESULT wxDialog::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lPar
|
||||
}
|
||||
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__
|
||||
case WM_SETCURSOR:
|
||||
// we want to override the busy cursor for modal dialogs:
|
||||
|
Reference in New Issue
Block a user