diff --git a/src/dfb/toplevel.cpp b/src/dfb/toplevel.cpp index c7f23b52df..5c042f3358 100644 --- a/src/dfb/toplevel.cpp +++ b/src/dfb/toplevel.cpp @@ -138,7 +138,7 @@ bool wxTopLevelWindowDFB::Create(wxWindow *parent, desc.width = size.x; desc.height = size.y; m_dfbwin = layer->CreateWindow(&desc); - if ( !layer ) + if ( !m_dfbwin ) return false; // add the new TLW to DFBWindowID->wxTLW map: @@ -188,10 +188,16 @@ wxTopLevelWindowDFB::~wxTopLevelWindowDFB() wxDELETE(m_toPaint); + if ( !m_dfbwin ) + return; + // remove the TLW from DFBWindowID->wxTLW map: DFBWindowID winid; if ( m_dfbwin->GetID(&winid) ) gs_dfbWindowsMap.erase(winid); + + m_dfbwin->Destroy(); + m_dfbwin.Reset(); } // ----------------------------------------------------------------------------