diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp index 8ad89a9f2..a7bfdf034 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp @@ -54,7 +54,8 @@ bool GLGizmoMmuSegmentation::on_is_selectable() const bool GLGizmoMmuSegmentation::on_is_activable() const { - return GLGizmoPainterBase::on_is_activable() && wxGetApp().filaments_cnt() > 1; + const Selection& selection = m_parent.get_selection(); + return !selection.is_empty() && (selection.is_single_full_instance() || selection.is_any_volume()) && wxGetApp().filaments_cnt() > 1; } //BBS: use the global one in 3DScene.cpp diff --git a/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp b/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp index 4e29d10af..f57c92749 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp @@ -117,7 +117,9 @@ bool CommonGizmosDataPool::check_dependencies(CommonGizmosDataID required) const void SelectionInfo::on_update() { const Selection& selection = get_pool()->get_canvas()->get_selection(); - if (selection.is_single_full_instance()) { + // BBS still keep object pointer when selection is volume + //if (selection.is_single_full_instance()) { + if (!selection.is_empty()) { m_model_object = selection.get_model()->objects[selection.get_object_idx()]; m_z_shift = selection.get_volume(*selection.get_volume_idxs().begin())->get_sla_shift_z(); }