diff --git a/src/slic3r/GUI/Widgets/ComboBox.cpp b/src/slic3r/GUI/Widgets/ComboBox.cpp index f010ce81c..8f2c685f3 100644 --- a/src/slic3r/GUI/Widgets/ComboBox.cpp +++ b/src/slic3r/GUI/Widgets/ComboBox.cpp @@ -215,7 +215,7 @@ void ComboBox::mouseDown(wxMouseEvent &event) } else if (drop.HasDismissLongTime()) { drop.autoPosition(); drop_down = true; - drop.Show(); // Popup() will hung on MacOS + drop.Popup(); wxCommandEvent e(wxEVT_COMBOBOX_DROPDOWN); GetEventHandler()->ProcessEvent(e); } @@ -242,7 +242,7 @@ void ComboBox::keyDown(wxKeyEvent& event) { } else if (drop.HasDismissLongTime()) { drop.autoPosition(); drop_down = true; - drop.Show(); // Popup() will hung on MacOS + drop.Popup(); wxCommandEvent e(wxEVT_COMBOBOX_DROPDOWN); GetEventHandler()->ProcessEvent(e); } diff --git a/src/slic3r/GUI/Widgets/DropDown.cpp b/src/slic3r/GUI/Widgets/DropDown.cpp index b0b609e46..c328d0742 100644 --- a/src/slic3r/GUI/Widgets/DropDown.cpp +++ b/src/slic3r/GUI/Widgets/DropDown.cpp @@ -3,7 +3,7 @@ #include -BEGIN_EVENT_TABLE(DropDown, wxPanel) +BEGIN_EVENT_TABLE(DropDown, wxPopupTransientWindow) EVT_LEFT_DOWN(DropDown::mouseDown) EVT_LEFT_UP(DropDown::mouseReleased) @@ -46,14 +46,6 @@ DropDown::DropDown(wxWindow * parent, // BBS set default font SetFont(Label::Body_14); -#ifdef __WXOSX__ - Bind(wxEVT_ACTIVATE, [this](auto & e) { - if (!e.GetActive()) { - Hide(); - OnDismiss(); - } - }); -#endif } void DropDown::Invalidate(bool clear) @@ -373,6 +365,7 @@ void DropDown::mouseReleased(wxMouseEvent& event) pressedDown = false; if (hover_item >= 0) // not moved sendDropDownEvent(); + DismissAndNotify(); } }