toplevel native window disposal in deferred delete clas

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15500 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2002-05-11 06:50:06 +00:00
parent 564bf1eab1
commit 118f012e37
2 changed files with 32 additions and 2 deletions

View File

@@ -112,6 +112,21 @@ void wxTopLevelWindowMac::Init()
m_macWindow = NULL ;
}
class wxMacDeferredWindowDeleter : public wxObject
{
public :
wxMacDeferredWindowDeleter( WindowRef windowRef )
{
m_macWindow = windowRef ;
}
virtual ~wxMacDeferredWindowDeleter()
{
UMADisposeWindow( (WindowRef) m_macWindow ) ;
}
protected :
WindowRef m_macWindow ;
} ;
bool wxTopLevelWindowMac::Create(wxWindow *parent,
wxWindowID id,
const wxString& title,
@@ -142,7 +157,7 @@ wxTopLevelWindowMac::~wxTopLevelWindowMac()
if ( m_macWindow )
{
wxToolTip::NotifyWindowDelete(m_macWindow) ;
UMADisposeWindow( (WindowRef) m_macWindow ) ;
wxPendingDelete.Append( new wxMacDeferredWindowDeleter( (WindowRef) m_macWindow ) ) ;
}
wxRemoveMacWindowAssociation( this ) ;