diff --git a/src/slic3r/GUI/Widgets/TempInput.cpp b/src/slic3r/GUI/Widgets/TempInput.cpp index 062515613..fa836e52f 100644 --- a/src/slic3r/GUI/Widgets/TempInput.cpp +++ b/src/slic3r/GUI/Widgets/TempInput.cpp @@ -79,18 +79,6 @@ bool TempInput::CheckIsValidVal(bool show_warning) return true; } -void TempInput::OnEdit() -{ - /*clear previous status*/ - ResetWaringDlg(); - - /*check the value is valid or not*/ - if (CheckIsValidVal(true)) - { - SetFinish(); - } -} - void TempInput::Create(wxWindow *parent, wxString text, wxString label, wxString normal_icon, wxString actice_icon, const wxPoint &pos, const wxSize &size, long style) { StaticBox::Create(parent, wxID_ANY, pos, size, style); @@ -132,7 +120,18 @@ void TempInput::Create(wxWindow *parent, wxString text, wxString label, wxString { if (!m_on_changing) /*the wxCUSTOMEVT_SET_TEMP_FINISH event may popup a dialog, which may generate dead loop*/ { - OnEdit(); + /*clear previous status*/ + ResetWaringDlg(); + + /*check the value is valid or not*/ + if (CheckIsValidVal(true)) + { + SetFinish(); + + SetOnChanging();// filter in wxEVT_KILL_FOCUS while navigating + text_ctrl->Navigate(); // quit edit mode + ReSetOnChanging(); + } } }); text_ctrl->Bind(wxEVT_RIGHT_DOWN, [this](auto &e) {}); // disable context menu diff --git a/src/slic3r/GUI/Widgets/TempInput.hpp b/src/slic3r/GUI/Widgets/TempInput.hpp index a0a0e7d85..555fbb9ef 100644 --- a/src/slic3r/GUI/Widgets/TempInput.hpp +++ b/src/slic3r/GUI/Widgets/TempInput.hpp @@ -127,8 +127,6 @@ public: void ReSetOnChanging() { m_on_changing = false; } protected: - virtual void OnEdit(); - virtual void DoSetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); void DoSetToolTipText(wxString const &tip) override;