Remove SendDestroyEvent() call from SetNSView() and call it from ~wxWindow
and ~wxTopLevelWindow instead. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27954 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -140,6 +140,8 @@ wxTopLevelWindowCocoa::~wxTopLevelWindowCocoa()
|
|||||||
wxASSERT(sm_cocoaDeactivateWindow!=this);
|
wxASSERT(sm_cocoaDeactivateWindow!=this);
|
||||||
wxAutoNSAutoreleasePool pool;
|
wxAutoNSAutoreleasePool pool;
|
||||||
DestroyChildren();
|
DestroyChildren();
|
||||||
|
if(m_cocoaNSView)
|
||||||
|
SendDestroyEvent();
|
||||||
SetNSWindow(NULL);
|
SetNSWindow(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -289,6 +289,8 @@ wxWindow::~wxWindow()
|
|||||||
CocoaRemoveFromParent();
|
CocoaRemoveFromParent();
|
||||||
delete m_cocoaHider;
|
delete m_cocoaHider;
|
||||||
delete m_cocoaScroller;
|
delete m_cocoaScroller;
|
||||||
|
if(m_cocoaNSView)
|
||||||
|
SendDestroyEvent();
|
||||||
SetNSView(NULL);
|
SetNSView(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -308,10 +310,6 @@ void wxWindowCocoa::CocoaRemoveFromParent(void)
|
|||||||
|
|
||||||
void wxWindowCocoa::SetNSView(WX_NSView cocoaNSView)
|
void wxWindowCocoa::SetNSView(WX_NSView cocoaNSView)
|
||||||
{
|
{
|
||||||
// Assume setting the NSView to NULL means this wxWindow is being destroyed
|
|
||||||
if(m_cocoaNSView && !cocoaNSView)
|
|
||||||
SendDestroyEvent();
|
|
||||||
|
|
||||||
bool need_debug = cocoaNSView || m_cocoaNSView;
|
bool need_debug = cocoaNSView || m_cocoaNSView;
|
||||||
if(need_debug) wxLogTrace(wxTRACE_COCOA_RetainRelease,wxT("wxWindowCocoa=%p::SetNSView [m_cocoaNSView=%p retainCount]=%d"),this,m_cocoaNSView,[m_cocoaNSView retainCount]);
|
if(need_debug) wxLogTrace(wxTRACE_COCOA_RetainRelease,wxT("wxWindowCocoa=%p::SetNSView [m_cocoaNSView=%p retainCount]=%d"),this,m_cocoaNSView,[m_cocoaNSView retainCount]);
|
||||||
DisassociateNSView(m_cocoaNSView);
|
DisassociateNSView(m_cocoaNSView);
|
||||||
|
Reference in New Issue
Block a user