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:
@@ -115,14 +115,26 @@ bool wxNonOwnedWindow::Create(wxWindow *parent,
|
|||||||
m_isShown = false;
|
m_isShown = false;
|
||||||
|
|
||||||
// use the appropriate defaults for the position and size if necessary
|
// use the appropriate defaults for the position and size if necessary
|
||||||
wxPoint pos(posOrig);
|
|
||||||
if ( !pos.IsFullySpecified() )
|
|
||||||
pos.SetDefaults(wxGetClientDisplayRect().GetPosition());
|
|
||||||
|
|
||||||
wxSize size(sizeOrig);
|
wxSize size(sizeOrig);
|
||||||
if ( !size.IsFullySpecified() )
|
if ( !size.IsFullySpecified() )
|
||||||
size.SetDefaults(wxTopLevelWindow::GetDefaultSize());
|
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.
|
// create frame.
|
||||||
m_nowpeer = wxNonOwnedWindowImpl::CreateNonOwnedWindow
|
m_nowpeer = wxNonOwnedWindowImpl::CreateNonOwnedWindow
|
||||||
(
|
(
|
||||||
|
Reference in New Issue
Block a user