diff options
author | enricoturri1966 <enricoturri@seznam.cz> | 2022-06-20 14:58:06 +0300 |
---|---|---|
committer | enricoturri1966 <enricoturri@seznam.cz> | 2022-06-20 14:58:06 +0300 |
commit | 63890b5f8d352d3ef1228fa00b0d3932717f933d (patch) | |
tree | ff0d492fc917a1cdff23967f93812ef028494174 | |
parent | 570b43941e1bcf797840bd2ecc7bd21dfe0995db (diff) |
Do know allow picking while dragging gizmos
-rw-r--r-- | src/slic3r/GUI/GLCanvas3D.cpp | 2 | ||||
-rw-r--r-- | src/slic3r/GUI/GLCanvas3D.hpp | 1 | ||||
-rw-r--r-- | src/slic3r/GUI/Gizmos/GLGizmoBase.cpp | 3 |
3 files changed, 1 insertions, 5 deletions
diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index c44ba66a0..eb5883f19 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -5420,7 +5420,7 @@ void GLCanvas3D::_refresh_if_shown_on_screen() void GLCanvas3D::_picking_pass()
{
- if (m_picking_enabled && !m_mouse.dragging && m_mouse.position != Vec2d(DBL_MAX, DBL_MAX)) {
+ if (m_picking_enabled && !m_mouse.dragging && m_mouse.position != Vec2d(DBL_MAX, DBL_MAX) && !m_gizmos.is_dragging()) {
m_hover_volume_idxs.clear();
// Render the object for picking.
diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 18ad42ae1..a5b2acb32 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -854,7 +854,6 @@ public: // Returns the view ray line, in world coordinate, at the given mouse position. Linef3 mouse_ray(const Point& mouse_pos); - void set_mouse_as_dragging() { m_mouse.dragging = true; } bool is_mouse_dragging() const { return m_mouse.dragging; } double get_size_proportional_to_max_bed_size(double factor) const; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp index 0810ddc97..0ef4d3774 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp @@ -310,8 +310,6 @@ bool GLGizmoBase::use_grabbers(const wxMouseEvent &mouse_event) { if (!m_grabbers.empty() && m_hover_id < int(m_grabbers.size()))
m_grabbers[m_hover_id].dragging = true;
- // prevent change of hover_id during dragging
- m_parent.set_mouse_as_dragging();
on_start_dragging();
// Let the plater know that the dragging started
@@ -323,7 +321,6 @@ bool GLGizmoBase::use_grabbers(const wxMouseEvent &mouse_event) { // when mouse cursor leave window than finish actual dragging operation
bool is_leaving = mouse_event.Leaving();
if (mouse_event.Dragging()) {
- m_parent.set_mouse_as_dragging();
Point mouse_coord(mouse_event.GetX(), mouse_event.GetY());
auto ray = m_parent.mouse_ray(mouse_coord);
UpdateData data(ray, mouse_coord);
|