BEGIN_EVENT_TABLE(wxTopLevelWindowBase, wxWindow)
EVT_CLOSE(wxTopLevelWindowBase::OnCloseWindow)
EVT_SIZE(wxTopLevelWindowBase::OnSize)
- WX_EVENT_TABLE_CONTROL_CONTAINER(wxTopLevelWindowBase)
END_EVENT_TABLE()
-WX_DELEGATE_TO_CONTROL_CONTAINER(wxTopLevelWindowBase, wxWindow)
-
// ============================================================================
// implementation
// ============================================================================
{
// Unlike windows, top level windows are created hidden by default.
m_isShown = false;
-
- WX_INIT_CONTROL_CONTAINER();
}
wxTopLevelWindowBase::~wxTopLevelWindowBase()
// passing wxNullIcon to SetIcon() is possible (it means that we shouldn't
// have any icon), but adding an invalid icon to wxIconBundle is not
wxIconBundle icons;
- if ( icon.Ok() )
+ if ( icon.IsOk() )
icons.AddIcon(icon);
SetIcons(icons);
// whole client area
void wxTopLevelWindowBase::DoLayout()
{
+ // We are called during the window destruction several times, e.g. as
+ // wxFrame tries to adjust to its tool/status bars disappearing. But
+ // actually doing the layout is pretty useless in this case as the window
+ // will disappear anyhow -- so just don't bother.
+ if ( IsBeingDeleted() )
+ return;
+
+
// if we're using constraints or sizers - do use them
if ( GetAutoLayout() )
{