diff --git a/xs/src/slic3r/GUI/GLCanvas3D.cpp b/xs/src/slic3r/GUI/GLCanvas3D.cpp index 04acc2136..571ac0029 100644 --- a/xs/src/slic3r/GUI/GLCanvas3D.cpp +++ b/xs/src/slic3r/GUI/GLCanvas3D.cpp @@ -3111,6 +3111,8 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) } else if (evt.Dragging() && m_gizmos.is_dragging()) { + m_canvas->CaptureMouse(); + m_mouse.dragging = true; m_gizmos.update(mouse_ray(pos)); @@ -3286,6 +3288,9 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) m_mouse.dragging = false; m_toolbar_action_running = false; m_dirty = true; + + if (m_canvas->HasCapture()) + m_canvas->ReleaseMouse(); } else if (evt.Moving()) { diff --git a/xs/src/slic3r/GUI/GLGizmo.cpp b/xs/src/slic3r/GUI/GLGizmo.cpp index b742b642d..39ba440c3 100644 --- a/xs/src/slic3r/GUI/GLGizmo.cpp +++ b/xs/src/slic3r/GUI/GLGizmo.cpp @@ -197,6 +197,8 @@ void GLGizmoBase::start_dragging() void GLGizmoBase::stop_dragging() { + set_tooltip(""); + for (int i = 0; i < (int)m_grabbers.size(); ++i) { m_grabbers[i].dragging = false;