diff --git a/src/mac/carbon/choice.cpp b/src/mac/carbon/choice.cpp index 582a3619e0..e2ce6fe4cf 100644 --- a/src/mac/carbon/choice.cpp +++ b/src/mac/carbon/choice.cpp @@ -27,7 +27,15 @@ extern MenuHandle NewUniqueMenu() ; wxChoice::~wxChoice() { - // DeleteMenu( m_macPopUpMenuId ) ; + if ( HasClientObjectData() ) + { + size_t i, max = GetCount(); + + for ( i = 0; i < max; ++i ) + delete GetClientObject(i); + } + + // DeleteMenu( m_macPopUpMenuId ) ; // DisposeMenu( m_macPopUpMenuHandle ) ; } @@ -271,3 +279,4 @@ wxSize wxChoice::DoGetBestSize() const } return wxSize(lbWidth, lbHeight); } + diff --git a/src/mac/carbon/combobox.cpp b/src/mac/carbon/combobox.cpp index 59a0edf814..6ae9d105c1 100644 --- a/src/mac/carbon/combobox.cpp +++ b/src/mac/carbon/combobox.cpp @@ -408,6 +408,10 @@ void wxComboBox::Append(const wxString& item) void wxComboBox::Delete(int n) { + if ( HasClientObjectData() ) + { + SetClientObject(n, NULL); + } m_choice->Delete( n ); } diff --git a/src/mac/choice.cpp b/src/mac/choice.cpp index 582a3619e0..e2ce6fe4cf 100644 --- a/src/mac/choice.cpp +++ b/src/mac/choice.cpp @@ -27,7 +27,15 @@ extern MenuHandle NewUniqueMenu() ; wxChoice::~wxChoice() { - // DeleteMenu( m_macPopUpMenuId ) ; + if ( HasClientObjectData() ) + { + size_t i, max = GetCount(); + + for ( i = 0; i < max; ++i ) + delete GetClientObject(i); + } + + // DeleteMenu( m_macPopUpMenuId ) ; // DisposeMenu( m_macPopUpMenuHandle ) ; } @@ -271,3 +279,4 @@ wxSize wxChoice::DoGetBestSize() const } return wxSize(lbWidth, lbHeight); } + diff --git a/src/mac/combobox.cpp b/src/mac/combobox.cpp index 59a0edf814..6ae9d105c1 100644 --- a/src/mac/combobox.cpp +++ b/src/mac/combobox.cpp @@ -408,6 +408,10 @@ void wxComboBox::Append(const wxString& item) void wxComboBox::Delete(int n) { + if ( HasClientObjectData() ) + { + SetClientObject(n, NULL); + } m_choice->Delete( n ); }