From f79f2557d6fe3208b765939172f0d8cc7524b5b9 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Mon, 14 Aug 2023 12:19:14 +0200 Subject: [PATCH] Revert of 88dbb2db6c6a48a449bb13b5425431f28eee8e0c + Fix for SPE-1835 : Scaling one part of an object after cutting with connectors, when open Scale gizmo with "S"-shortcut. --- src/slic3r/GUI/GLCanvas3D.cpp | 16 +++++++++++++++- src/slic3r/GUI/Gizmos/GLGizmoScale.cpp | 6 ------ src/slic3r/GUI/Gizmos/GLGizmoScale.hpp | 2 -- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index e4923e8fbd..8bdc3bfa3a 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -2878,8 +2878,15 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) if (keyCode == WXK_ESCAPE && (_deactivate_undo_redo_toolbar_items() || _deactivate_search_toolbar_item() || _deactivate_arrange_menu())) return; - if (m_gizmos.on_char(evt)) + if (m_gizmos.on_char(evt)) { + if (m_gizmos.get_current_type() == GLGizmosManager::EType::Scale && + m_gizmos.get_current()->get_state() == GLGizmoBase::EState::On) { + // Update selection from object list to check selection of the cut objects + // It's not allowed to scale separate ct parts + wxGetApp().obj_list()->selection_changed(); + } return; + } if ((evt.GetModifiers() & ctrlMask) != 0) { // CTRL is pressed @@ -3595,6 +3602,13 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) update_sequential_clearance(true); } } + else if (evt.LeftUp() && + m_gizmos.get_current_type() == GLGizmosManager::EType::Scale && + m_gizmos.get_current()->get_state() == GLGizmoBase::EState::On) { + // Update selection from object list to check selection of the cut objects + // It's not allowed to scale separate ct parts + wxGetApp().obj_list()->selection_changed(); + } return; } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp index 6cc852c6a6..1a7251ddf7 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp @@ -99,12 +99,6 @@ void GLGizmoScale3D::enable_ununiversal_scale(bool enable) m_grabbers[i].enabled = enable; } -void GLGizmoScale3D::on_set_state() -{ - if (m_state == On) - wxGetApp().obj_list()->selection_changed(); -} - void GLGizmoScale3D::data_changed(bool is_serializing) { set_scale(Vec3d::Ones()); } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoScale.hpp b/src/slic3r/GUI/Gizmos/GLGizmoScale.hpp index 6e304061ab..6a7b4a331e 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoScale.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoScale.hpp @@ -74,8 +74,6 @@ protected: virtual void on_register_raycasters_for_picking() override; virtual void on_unregister_raycasters_for_picking() override; - void on_set_state() override; - private: void render_grabbers_connection(unsigned int id_1, unsigned int id_2, const ColorRGBA& color);