X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b5f62a0b2db198609b45dec622a018dae37008e..68d4172048cfc0f3e658ef90ff5af926eedfdd57:/src/univ/listbox.cpp diff --git a/src/univ/listbox.cpp b/src/univ/listbox.cpp index f0f783992a..4612caa01d 100644 --- a/src/univ/listbox.cpp +++ b/src/univ/listbox.cpp @@ -49,8 +49,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl) BEGIN_EVENT_TABLE(wxListBox, wxListBoxBase) EVT_SIZE(wxListBox::OnSize) - - EVT_IDLE(wxListBox::OnIdle) END_EVENT_TABLE() // ---------------------------------------------------------------------------- @@ -127,6 +125,8 @@ bool wxListBox::Create(wxWindow *parent, wxListBox::~wxListBox() { + // call this just to free the client data -- and avoid leaking memory + DoClear(); } // ---------------------------------------------------------------------------- @@ -272,7 +272,8 @@ void wxListBox::Clear() void wxListBox::Delete(int n) { - wxCHECK_RET( n < GetCount(), _T("invalid index in wxListBox::Delete") ); + wxCHECK_RET( n >= 0 && n < GetCount(), + _T("invalid index in wxListBox::Delete") ); // do it before removing the index as otherwise the last item will not be // refreshed (as GetCount() will be decremented) @@ -598,7 +599,7 @@ void wxListBox::UpdateItems() } } -void wxListBox::OnIdle(wxIdleEvent& event) +void wxListBox::OnInternalIdle() { if ( m_updateScrollbarY || m_updateScrollbarX ) { @@ -621,8 +622,6 @@ void wxListBox::OnIdle(wxIdleEvent& event) m_updateCount = 0; } - - event.Skip(); } // ----------------------------------------------------------------------------