X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3c67451472112b3c7bb3b425cfab523b2d38d0cf..60848fcfefa649f4e1275281639881452374a350:/src/generic/accel.cpp diff --git a/src/generic/accel.cpp b/src/generic/accel.cpp index bede8f488c..a50bed3218 100644 --- a/src/generic/accel.cpp +++ b/src/generic/accel.cpp @@ -16,7 +16,7 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "accel.h" #endif @@ -55,16 +55,19 @@ class wxAccelRefData : public wxObjectRefData public: wxAccelRefData() { - m_accels.DeleteContents(TRUE); } wxAccelRefData(const wxAccelRefData& data) : wxObjectRefData() { - m_accels.DeleteContents(TRUE); m_accels = data.m_accels; } + virtual ~wxAccelRefData() + { + WX_CLEAR_LIST(wxAccelList, m_accels); + } + wxAccelList m_accels; }; @@ -133,14 +136,15 @@ void wxAcceleratorTable::Remove(const wxAcceleratorEntry& entry) { AllocExclusive(); - wxAccelList::Node *node = M_ACCELDATA->m_accels.GetFirst(); + wxAccelList::compatibility_iterator node = M_ACCELDATA->m_accels.GetFirst(); while ( node ) { const wxAcceleratorEntry *entryCur = node->GetData(); if ( *entryCur == entry ) { - M_ACCELDATA->m_accels.DeleteNode(node); + delete node->GetData(); + M_ACCELDATA->m_accels.Erase(node); return; } @@ -164,7 +168,7 @@ wxAcceleratorTable::GetEntry(const wxKeyEvent& event) const return NULL; } - wxAccelList::Node *node = M_ACCELDATA->m_accels.GetFirst(); + wxAccelList::compatibility_iterator node = M_ACCELDATA->m_accels.GetFirst(); while ( node ) { const wxAcceleratorEntry *entry = node->GetData(); @@ -177,8 +181,7 @@ wxAcceleratorTable::GetEntry(const wxKeyEvent& event) const // now check flags if ( (((flags & wxACCEL_CTRL) != 0) == event.ControlDown()) && (((flags & wxACCEL_SHIFT) != 0) == event.ShiftDown()) && - (((flags & wxACCEL_ALT) != 0) == - (event.AltDown() || event.MetaDown())) ) + (((flags & wxACCEL_ALT) != 0) == event.AltDown()) ) { return entry; }