diff options
author | Enrico Turri <enricoturri@seznam.cz> | 2018-09-05 10:51:31 +0300 |
---|---|---|
committer | Enrico Turri <enricoturri@seznam.cz> | 2018-09-05 10:51:31 +0300 |
commit | 407aee99428a31191abeee57a3f451b7ebb28bdc (patch) | |
tree | e569cce71922179e910e1334ec3aa8352866a0fb /xs | |
parent | d41b7a3749a02caa6cf2c66c89608344ef0efb40 (diff) | |
parent | 77b9982ea734d86b96bfcc458a4fd8f5c24ea4fd (diff) |
Merge branch 'master' of https://github.com/prusa3d/Slic3r into dev
Diffstat (limited to 'xs')
-rw-r--r-- | xs/src/admesh/stlinit.cpp | 2 | ||||
-rw-r--r-- | xs/src/slic3r/GUI/Field.cpp | 23 | ||||
-rw-r--r-- | xs/src/slic3r/GUI/Field.hpp | 1 |
3 files changed, 17 insertions, 9 deletions
diff --git a/xs/src/admesh/stlinit.cpp b/xs/src/admesh/stlinit.cpp index 47a37f0a5..e2939b8af 100644 --- a/xs/src/admesh/stlinit.cpp +++ b/xs/src/admesh/stlinit.cpp @@ -286,7 +286,7 @@ void stl_read(stl_file *stl, int first_facet, bool first) { { // skip solid/endsolid // (in this order, otherwise it won't work when they are paired in the middle of a file) - fscanf(stl->fp, "endsolid\n"); + fscanf(stl->fp, "endsolid%*[^\n]\n"); fscanf(stl->fp, "solid%*[^\n]\n"); // name might contain spaces so %*s doesn't work and it also can be empty (just "solid") // Leading space in the fscanf format skips all leading white spaces including numerous new lines and tabs. int res_normal = fscanf(stl->fp, " facet normal %31s %31s %31s", normal_buf[0], normal_buf[1], normal_buf[2]); diff --git a/xs/src/slic3r/GUI/Field.cpp b/xs/src/slic3r/GUI/Field.cpp index 4043a4457..352219853 100644 --- a/xs/src/slic3r/GUI/Field.cpp +++ b/xs/src/slic3r/GUI/Field.cpp @@ -238,14 +238,10 @@ namespace Slic3r { namespace GUI { }), temp->GetId()); #ifdef __WXGTK__ - temp->Bind(wxEVT_KEY_UP, [this](wxKeyEvent& event) - { - if (bChangedValueEvent) { - on_change_field(); - bChangedValueEvent = false; - } - event.Skip(); - }); + // to correct value update on GTK we should call on_change_field() on + // wxEVT_KEY_UP or wxEVT_TEXT_PASTE instead of wxEVT_TEXT + temp->Bind(wxEVT_KEY_UP, &TextCtrl::change_field_value, this); + temp->Bind(wxEVT_TEXT_PASTE, &TextCtrl::change_field_value, this); #endif //__WXGTK__ // select all text using Ctrl+A @@ -271,6 +267,17 @@ namespace Slic3r { namespace GUI { void TextCtrl::enable() { dynamic_cast<wxTextCtrl*>(window)->Enable(); dynamic_cast<wxTextCtrl*>(window)->SetEditable(true); } void TextCtrl::disable() { dynamic_cast<wxTextCtrl*>(window)->Disable(); dynamic_cast<wxTextCtrl*>(window)->SetEditable(false); } +#ifdef __WXGTK__ + void TextCtrl::change_field_value(wxEvent& event) + { + if (bChangedValueEvent) { + on_change_field(); + bChangedValueEvent = false; + } + event.Skip(); + }; +#endif //__WXGTK__ + void CheckBox::BUILD() { auto size = wxSize(wxDefaultSize); if (m_opt.height >= 0) size.SetHeight(m_opt.height); diff --git a/xs/src/slic3r/GUI/Field.hpp b/xs/src/slic3r/GUI/Field.hpp index e305f1e53..4b80040a4 100644 --- a/xs/src/slic3r/GUI/Field.hpp +++ b/xs/src/slic3r/GUI/Field.hpp @@ -236,6 +236,7 @@ class TextCtrl : public Field { using Field::Field; #ifdef __WXGTK__ bool bChangedValueEvent = false; + void change_field_value(wxEvent& event); #endif //__WXGTK__ public: TextCtrl(const ConfigOptionDef& opt, const t_config_option_key& id) : Field(opt, id) {} |