]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/bmpcboxg.cpp
Don't leak m_protocol in wxURL.
[wxWidgets.git] / src / generic / bmpcboxg.cpp
index ce14a4708f451658a59d32964bf12ae9c36201e0..bf888438444a7a141b753820ff81c49488fe5f32 100644 (file)
@@ -151,6 +151,8 @@ int wxBitmapComboBox::DoInsertItems(const wxArrayStringsAdapter & items,
     const unsigned int numItems = items.GetCount();
     const unsigned int countNew = GetCount() + numItems;
 
+    wxASSERT( numItems == 1 || !HasFlag(wxCB_SORT) );  // Sanity check
+
     m_bitmaps.Alloc(countNew);
 
     for ( unsigned int i = 0; i < numItems; i++ )
@@ -166,6 +168,14 @@ int wxBitmapComboBox::DoInsertItems(const wxArrayStringsAdapter & items,
         for ( int i = numItems-1; i >= 0; i-- )
             BCBDoDeleteOneItem(pos + i);
     }
+    else if ( ((unsigned int)index) != pos )
+    {
+        // Move pre-inserted empty bitmap into correct position
+        // (usually happens when combo box has wxCB_SORT style)
+        wxBitmap* bmp = static_cast<wxBitmap*>(m_bitmaps[pos]);
+        m_bitmaps.RemoveAt(pos);
+        m_bitmaps.Insert(bmp, index);
+    }
 
     return index;
 }
@@ -327,7 +337,7 @@ void wxBitmapComboBox::OnDrawItem(wxDC& dc,
     {
         text = GetString(item);
     }
-    
+
     wxBitmapComboBoxBase::DrawItem(dc, rect, item, text, flags);
 }