From b37d4e5b6c7b3f2847a18300a95c64bf1e21a989 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Mon, 24 Apr 2023 10:01:32 +0200 Subject: [PATCH] SPE-1674 - Follow-up of 9efed4be225615b3fac420bc2993cd0cb1e3429c - More robust fix --- src/slic3r/GUI/GLCanvas3D.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 23079b63c..bc0fdf65c 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -615,7 +615,7 @@ void GLCanvas3D::LayersEditing::accept_changes(GLCanvas3D& canvas) if (m_layer_height_profile_modified) { wxGetApp().plater()->take_snapshot(_L("Variable layer height - Manual edit")); const_cast(m_model_object)->layer_height_profile.set(m_layer_height_profile); - canvas.post_event(SimpleEvent(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS)); + canvas.post_event(SimpleEvent(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS)); wxGetApp().obj_list()->update_info_items(last_object_id); } } @@ -3189,9 +3189,15 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) m_canvas->SetFocus(); if (evt.Entering()) { - if (m_mouse.dragging && !evt.LeftIsDown() && !evt.RightIsDown() && !evt.MiddleIsDown()) - // reset dragging state if the user released the mouse button outside the 3D scene - m_mouse.dragging = false; + if (m_mouse.dragging && !evt.LeftIsDown() && !evt.RightIsDown() && !evt.MiddleIsDown()) { + // ensure to stop layers editing if enabled + if (m_layers_editing.state != LayersEditing::Unknown) { + m_layers_editing.state = LayersEditing::Unknown; + _stop_timer(); + m_layers_editing.accept_changes(*this); + } + mouse_up_cleanup(); + } //#if defined(__WXMSW__) || defined(__linux__) // // On Windows and Linux needs focus in order to catch key events