From 8300c386e0934b5d43bd7bd5bebebffc21cc54ea Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Thu, 4 Aug 2022 16:25:14 +0800 Subject: [PATCH] FIX: call DismissAndNotify to manual close popup Change-Id: I395708a98dda390f81d52151c9c52ba367de5a3d --- src/slic3r/GUI/Widgets/ComboBox.cpp | 4 ++-- src/slic3r/GUI/Widgets/DropDown.cpp | 11 ++--------- 2 files changed, 4 insertions(+), 11 deletions(-) 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(); } }