Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/xs
diff options
context:
space:
mode:
authorEnrico Turri <enricoturri@seznam.cz>2018-09-05 10:51:31 +0300
committerEnrico Turri <enricoturri@seznam.cz>2018-09-05 10:51:31 +0300
commit407aee99428a31191abeee57a3f451b7ebb28bdc (patch)
treee569cce71922179e910e1334ec3aa8352866a0fb /xs
parentd41b7a3749a02caa6cf2c66c89608344ef0efb40 (diff)
parent77b9982ea734d86b96bfcc458a4fd8f5c24ea4fd (diff)
Merge branch 'master' of https://github.com/prusa3d/Slic3r into dev
Diffstat (limited to 'xs')
-rw-r--r--xs/src/admesh/stlinit.cpp2
-rw-r--r--xs/src/slic3r/GUI/Field.cpp23
-rw-r--r--xs/src/slic3r/GUI/Field.hpp1
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) {}