Improve default position for new TLWs in wxOSX.

Put the new windows in the upper left corner of the screen but not at (0, 0)
as before, this was rather inconvenient and too different from the normal
application behaviour under OS X.

Closes #11926.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66034 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2010-11-05 21:40:30 +00:00
parent 8244507f68
commit 0d65f8d20f

View File

@@ -115,14 +115,26 @@ bool wxNonOwnedWindow::Create(wxWindow *parent,
m_isShown = false;
// use the appropriate defaults for the position and size if necessary
wxPoint pos(posOrig);
if ( !pos.IsFullySpecified() )
pos.SetDefaults(wxGetClientDisplayRect().GetPosition());
wxSize size(sizeOrig);
if ( !size.IsFullySpecified() )
size.SetDefaults(wxTopLevelWindow::GetDefaultSize());
wxPoint pos(posOrig);
if ( !pos.IsFullySpecified() )
{
wxRect rectWin = wxRect(size).CentreIn(wxGetClientDisplayRect());
// The size of the window is often not really known yet, TLWs are often
// created with some small initial size and later are fitted to contain
// their children so centering the window will show it too much to the
// right and bottom, adjust for it by putting it more to the left and
// center.
rectWin.x /= 2;
rectWin.y /= 2;
pos.SetDefaults(rectWin.GetPosition());
}
// create frame.
m_nowpeer = wxNonOwnedWindowImpl::CreateNonOwnedWindow
(