X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/31528cd3cac75558beef4bce0ba21fd182a808ab..866592d872daa1f4e3d44948d7d3a6c90b0af9d0:/src/motif/frame.cpp diff --git a/src/motif/frame.cpp b/src/motif/frame.cpp index aa411fcb42..a5272571d0 100644 --- a/src/motif/frame.cpp +++ b/src/motif/frame.cpp @@ -65,12 +65,12 @@ static bool wxTopLevelUsed = FALSE; #if !USE_SHARED_LIBRARY BEGIN_EVENT_TABLE(wxFrame, wxWindow) -EVT_SIZE(wxFrame::OnSize) -EVT_ACTIVATE(wxFrame::OnActivate) -EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight) -EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged) -EVT_IDLE(wxFrame::OnIdle) -EVT_CLOSE(wxFrame::OnCloseWindow) + EVT_SIZE(wxFrame::OnSize) + EVT_ACTIVATE(wxFrame::OnActivate) + EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight) + EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged) + EVT_IDLE(wxFrame::OnIdle) + EVT_CLOSE(wxFrame::OnCloseWindow) END_EVENT_TABLE() IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) @@ -144,9 +144,31 @@ bool wxFrame::Create(wxWindow *parent, wxModelessWindows.Append(this); - int x = pos.x; int y = pos.y; - int width = size.x; int height = size.y; - + int x = pos.x, y = pos.y; + int width = size.x, height = size.y; + + // Set reasonable values for position and size if defaults have + // been requested + // + // MB TODO: something better than these arbitrary values ? + // + if ( width == -1 ) width = 400; + if ( height = -1 ) height = 400; + + int displayW, displayH; + wxDisplaySize( &displayW, &displayH ); + + if ( x == -1 ) + { + x = (displayW - width) / 2; + if (x < 10) x = 10; + } + if ( y == -1 ) + { + y = (displayH - height) / 2; + if (y < 10) y = 10; + } + if (wxTopLevelUsed) { // Change suggested by Matthew Flatt @@ -300,6 +322,8 @@ bool wxFrame::Create(wxWindow *parent, wxFrame::~wxFrame() { + m_isBeingDeleted = TRUE; + if (m_clientArea) XtRemoveEventHandler((Widget) m_clientArea, ExposureMask, FALSE, wxUniversalRepaintProc, (XtPointer) this);