diff options
author | Enrico Turri <enricoturri@seznam.cz> | 2018-08-24 16:49:57 +0300 |
---|---|---|
committer | Enrico Turri <enricoturri@seznam.cz> | 2018-08-24 16:49:57 +0300 |
commit | 220d430956f353d78abbbed44b33104df07bb737 (patch) | |
tree | ae069eb1c29913b785d37ac810f05843ed819a79 | |
parent | cda135ada7ac2599d414b5ab19280135b651ebd2 (diff) |
Mouse capture when dragging gizmos
-rw-r--r-- | xs/src/slic3r/GUI/GLCanvas3D.cpp | 5 | ||||
-rw-r--r-- | xs/src/slic3r/GUI/GLGizmo.cpp | 2 |
2 files changed, 7 insertions, 0 deletions
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; |