diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 9f09619c88..fb73ad1fcd 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -2879,8 +2879,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 @@ -3596,6 +3603,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);