diff --git a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp index b5e560fe26..56cb0525ed 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp @@ -458,6 +458,17 @@ void ViewProviderBody::dropObject(App::DocumentObject* obj) if (obj->getTypeId().isDerivedFrom(Part::Part2DObject::getClassTypeId())) { body->addObject(obj); } + else if (PartDesignGui::isFeatureMovable(obj)) { + std::vector move; + move.push_back(obj); + std::vector deps = PartDesignGui::collectMovableDependencies(move); + move.insert(std::end(move), std::begin(deps), std::end(deps)); + + PartDesign::Body* source = PartDesign::Body::findBodyOf(obj); + if (source) + source->removeObjects(move); + body->addObjects(move); + } else { body->BaseFeature.setValue(obj); }