X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8ec413ce46f5590f2cfcba50f6f1cf1a60392b63..06e56e62b9ab3a4ee66d7013c978128e5021f4e2:/src/osx/toplevel_osx.cpp diff --git a/src/osx/toplevel_osx.cpp b/src/osx/toplevel_osx.cpp index f88c60dce2..be18e7bc1a 100644 --- a/src/osx/toplevel_osx.cpp +++ b/src/osx/toplevel_osx.cpp @@ -1,12 +1,12 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: src/osx/toplevel.cpp +// Name: src/osx/toplevel_osx.cpp // Purpose: implements wxTopLevelWindow for Mac // Author: Stefan Csomor // Modified by: // Created: 24.09.01 // RCS-ID: $Id$ // Copyright: (c) 2001-2004 Stefan Csomor -// License: wxWindows licence +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -73,10 +73,7 @@ bool wxTopLevelWindowMac::Create(wxWindow *parent, long style, const wxString& name) { - int w = WidthDefault(size.x); - int h = HeightDefault(size.y); - - if ( !wxNonOwnedWindow::Create(parent, id, pos, wxSize(w,h), style, name) ) + if ( !wxNonOwnedWindow::Create(parent, id, pos, size, style, name) ) return false; wxWindow::SetLabel( title ) ; @@ -91,9 +88,9 @@ bool wxTopLevelWindowMac::Create(wxWindow *parent, { if ( !wxNonOwnedWindow::Create(parent, nativeWindow ) ) return false; - + wxTopLevelWindows.Append(this); - + return true; } @@ -109,7 +106,13 @@ bool wxTopLevelWindowMac::Destroy() if (m_nowpeer && m_nowpeer->GetWXWindow()) ClearKeyboardFocus( (WindowRef)m_nowpeer->GetWXWindow() ); #endif - return wxTopLevelWindowBase::Destroy(); + // delayed destruction: the tlw will be deleted during the next idle + // loop iteration + if ( !wxPendingDelete.Member(this) ) + wxPendingDelete.Append(this); + + Hide(); + return true; } @@ -127,7 +130,7 @@ bool wxTopLevelWindowMac::IsMaximized() const { if ( m_nowpeer == NULL ) return false; - + return m_nowpeer->IsMaximized(); } @@ -183,8 +186,9 @@ void wxTopLevelWindowMac::ShowWithoutActivating() return; m_nowpeer->ShowWithoutActivating(); - - // TODO: Should we call EVT_SIZE here? + + // because apps expect a size event to occur at this moment + SendSizeEvent(); } bool wxTopLevelWindowMac::ShowFullScreen(bool show, long style) @@ -216,3 +220,8 @@ bool wxTopLevelWindowMac::OSXIsModified() const { return m_nowpeer->IsModified(); } + +void wxTopLevelWindowMac::SetRepresentedFilename(const wxString& filename) +{ + m_nowpeer->SetRepresentedFilename(filename); +}