diff --git a/src/slic3r/GUI/Search.cpp b/src/slic3r/GUI/Search.cpp index 77df47810..d4eb1f426 100644 --- a/src/slic3r/GUI/Search.cpp +++ b/src/slic3r/GUI/Search.cpp @@ -623,6 +623,7 @@ void SearchDialog::Popup(wxPoint position /*= wxDefaultPosition*/) //const std::string &line = searcher->search_string(); //searcher->search(into_u8(line), true); wxPopupTransientWindow::Popup(); + search_line->SetFocus(); update_list(); } @@ -638,7 +639,11 @@ void SearchDialog::OnDismiss() { } void SearchDialog::Dismiss() { auto pos = wxGetMousePosition(); - if (!m_event_tag->GetScreenRect().Contains(pos) && !this->GetScreenRect().Contains(pos) && !m_search_item_tag->GetScreenRect().Contains(pos)) { + + if (!search_line->HasFocus() && !this->HasFocus()) { + Die(); + } + else if (!m_event_tag->GetScreenRect().Contains(pos) && !this->GetScreenRect().Contains(pos) && !m_search_item_tag->GetScreenRect().Contains(pos)) { Die(); } } diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 02f10fdc5..988847d18 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -325,7 +325,6 @@ void Tab::create_preset_tab() this->GetParent()->Layout(); wxGetApp().plater()->search(false, m_type, m_top_panel->GetParent(), m_search_input, m_btn_search); - m_search_input->SetFocus(); Thaw(); });