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

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEnrico Turri <enricoturri@seznam.cz>2018-08-24 16:49:57 +0300
committerEnrico Turri <enricoturri@seznam.cz>2018-08-24 16:49:57 +0300
commit220d430956f353d78abbbed44b33104df07bb737 (patch)
treeae069eb1c29913b785d37ac810f05843ed819a79
parentcda135ada7ac2599d414b5ab19280135b651ebd2 (diff)
Mouse capture when dragging gizmos
-rw-r--r--xs/src/slic3r/GUI/GLCanvas3D.cpp5
-rw-r--r--xs/src/slic3r/GUI/GLGizmo.cpp2
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;