diff --git a/src/slic3r/GUI/Widgets/ComboBox.cpp b/src/slic3r/GUI/Widgets/ComboBox.cpp index 400033fb21..1e2ad8c042 100644 --- a/src/slic3r/GUI/Widgets/ComboBox.cpp +++ b/src/slic3r/GUI/Widgets/ComboBox.cpp @@ -192,7 +192,7 @@ bool ComboBox::SetFont(wxFont const& font) int ComboBox::Append(const wxString &item, const wxBitmap &bitmap, int style) { - if (bitmap.IsOk()) { + if (&bitmap && bitmap.IsOk()) { return Append(item, bitmap, nullptr, style); } return Append(item, wxNullBitmap, nullptr, style); @@ -203,7 +203,7 @@ int ComboBox::Append(const wxString &text, void * clientData, int style) { - if (bitmap.IsOk()) { + if (&bitmap && bitmap.IsOk()) { return Append(text, bitmap, wxString{}, clientData, style); } return Append(text, wxNullBitmap, wxString{}, clientData, style); @@ -211,7 +211,8 @@ int ComboBox::Append(const wxString &text, int ComboBox::Append(const wxString &text, const wxBitmap &bitmap, const wxString &group, void *clientData, int style) { - Item item{text, wxEmptyString, bitmap, bitmap, clientData, group }; + auto valid_bit_map = (&bitmap && bitmap.IsOk()) ? bitmap : wxNullBitmap; + Item item{text, wxEmptyString, valid_bit_map, valid_bit_map, clientData, group}; item.style = style; items.push_back(item); SetClientDataType(wxClientData_Void); @@ -277,7 +278,7 @@ wxBitmap ComboBox::GetItemBitmap(unsigned int n) { return items[n].icon; } void ComboBox::SetItemBitmap(unsigned int n, wxBitmap const &bitmap) { if (n >= items.size()) return; - items[n].icon = bitmap; + items[n].icon = (&bitmap && bitmap.IsOk()) ? bitmap : wxNullBitmap; drop.Invalidate(); }