diff --git a/src/slic3r/GUI/Widgets/ComboBox.cpp b/src/slic3r/GUI/Widgets/ComboBox.cpp index 462724179f..00a3ce0b02 100644 --- a/src/slic3r/GUI/Widgets/ComboBox.cpp +++ b/src/slic3r/GUI/Widgets/ComboBox.cpp @@ -24,10 +24,11 @@ static wxWindow *GetScrollParent(wxWindow *pWindow) wxWindow *pWin = pWindow; while (pWin->GetParent()) { auto pWin2 = pWin->GetParent(); - if (auto top = dynamic_cast(pWin2)) return dynamic_cast(pWin); + if (auto top = dynamic_cast(pWin2)) + return dynamic_cast(pWin); pWin = pWin2; } - return pWin; + return nullptr; } ComboBox::ComboBox(wxWindow *parent, @@ -58,8 +59,6 @@ ComboBox::ComboBox(wxWindow *parent, std::make_pair(*wxWHITE, (int) StateColor::Normal))); TextInput::SetLabelColor(StateColor(std::make_pair(0x909090, (int) StateColor::Disabled), std::make_pair(0x262E30, (int) StateColor::Normal))); - } else { - GetTextCtrl()->Bind(wxEVT_KEY_DOWN, &ComboBox::keyDown, this); } if (auto scroll = GetScrollParent(this)) scroll->Bind(wxEVT_MOVE, &ComboBox::onMove, this); @@ -85,7 +84,7 @@ void ComboBox::SetSelection(int n) return; drop.SetSelection(n); SetLabel(drop.GetValue()); - if (drop.selection >= 0) + if (drop.selection >= 0 && drop.iconSize.y > 0) SetIcon(icons[drop.selection]); } void ComboBox::SelectAndNotify(int n) { @@ -108,7 +107,7 @@ void ComboBox::SetValue(const wxString &value) { drop.SetValue(value); SetLabel(value); - if (drop.selection >= 0) + if (drop.selection >= 0 && drop.iconSize.y > 0) SetIcon(icons[drop.selection]); } diff --git a/src/slic3r/GUI/Widgets/DropDown.cpp b/src/slic3r/GUI/Widgets/DropDown.cpp index ce309afb03..4e4ee26ae8 100644 --- a/src/slic3r/GUI/Widgets/DropDown.cpp +++ b/src/slic3r/GUI/Widgets/DropDown.cpp @@ -89,6 +89,7 @@ void DropDown::SetSelection(int n) n = -1; if (selection == n) return; selection = n; + messureSize(); paintNow(); }