X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/331c9f56a44039554ae639b1733ee8ea2022bdd5..b70b68a9ba62320a6a667f510b316219c7029d90:/src/common/tbarbase.cpp?ds=sidebyside diff --git a/src/common/tbarbase.cpp b/src/common/tbarbase.cpp index 62ec150e49..2496b8a974 100644 --- a/src/common/tbarbase.cpp +++ b/src/common/tbarbase.cpp @@ -41,7 +41,7 @@ #include "wx/toolbar.h" // ---------------------------------------------------------------------------- -// wxWindows macros +// wxWidgets macros // ---------------------------------------------------------------------------- BEGIN_EVENT_TABLE(wxToolBarBase, wxControl) @@ -59,6 +59,8 @@ WX_DEFINE_LIST(wxToolBarToolsList); // wxToolBarToolBase // ---------------------------------------------------------------------------- +IMPLEMENT_DYNAMIC_CLASS(wxToolBarToolBase, wxObject) + bool wxToolBarToolBase::Enable(bool enable) { if ( m_enabled == enable ) @@ -139,6 +141,7 @@ wxToolBarToolBase *wxToolBarBase::DoAddTool(int id, wxCoord WXUNUSED(xPos), wxCoord WXUNUSED(yPos)) { + InvalidateBestSize(); return InsertTool(GetToolsCount(), id, label, bitmap, bmpDisabled, kind, shortHelp, longHelp, clientData); } @@ -619,6 +622,12 @@ void wxToolBarBase::UpdateWindowUI(long flags) { wxWindowBase::UpdateWindowUI(flags); + // There is no sense in updating the toolbar UI + // if the parent window is about to get destroyed + wxWindow *tlw = wxGetTopLevelParent( this ); + if (tlw && wxPendingDelete.Member( tlw )) + return; + wxEvtHandler* evtHandler = GetEventHandler() ; for ( wxToolBarToolsList::compatibility_iterator node = m_tools.GetFirst();