diff --git a/src/slic3r/GUI/GUI_ObjectManipulation.cpp b/src/slic3r/GUI/GUI_ObjectManipulation.cpp index e502b25d7e..41f4cf0604 100644 --- a/src/slic3r/GUI/GUI_ObjectManipulation.cpp +++ b/src/slic3r/GUI/GUI_ObjectManipulation.cpp @@ -1040,7 +1040,13 @@ void ObjectManipulation::update_mirror_buttons_visibility() #endif // !ENABLE_WORLD_COORDINATE } } -#if !ENABLE_WORLD_COORDINATE + +#if ENABLE_WORLD_COORDINATE + const bool can_mirror = wxGetApp().plater()->can_mirror(); + for (ScalableButton* button : m_mirror_buttons) { + button->Enable(can_mirror); + } +#else else { // the mirroring buttons should be hidden in world coordinates, // unless we make it actually mirror in world coords. @@ -1062,7 +1068,7 @@ void ObjectManipulation::update_mirror_buttons_visibility() } } }); -#endif // !ENABLE_WORLD_COORDINATE +#endif // ENABLE_WORLD_COORDINATE } diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index ed280697ac..b55f6299a3 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -4837,9 +4837,14 @@ bool Plater::priv::layers_height_allowed() const bool Plater::priv::can_mirror() const { +#if ENABLE_WORLD_COORDINATE + return !sidebar->obj_list()->has_selected_cut_object(); +#else return !sidebar->obj_list()->has_selected_cut_object() && get_selection().is_from_single_instance(); +#endif // ENABLE_WORLD_COORDINATE } + bool Plater::priv::can_replace_with_stl() const { return !sidebar->obj_list()->has_selected_cut_object() && get_selection().get_volume_idxs().size() == 1;