From 94fb19d9bee7449b4d1adadf55f28aca0b509731 Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Mon, 6 Oct 2025 14:36:13 +0200 Subject: [PATCH] Assembly: Fix dragger when assembly is transformed --- src/Mod/Assembly/Gui/ViewProviderAssembly.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Mod/Assembly/Gui/ViewProviderAssembly.cpp b/src/Mod/Assembly/Gui/ViewProviderAssembly.cpp index ba9ede7a83..4f73df6e44 100644 --- a/src/Mod/Assembly/Gui/ViewProviderAssembly.cpp +++ b/src/Mod/Assembly/Gui/ViewProviderAssembly.cpp @@ -1105,6 +1105,13 @@ void ViewProviderAssembly::draggerMotionCallback(void* data, SoDragger* d) Base::Placement draggerPlc = sudoThis->getDraggerPlacement(); Base::Placement movePlc = draggerPlc * sudoThis->draggerInitPlc.inverse(); + // Transform the global delta `movePlc` in case the assembly is transformed. + Base::Placement asmPlc = + App::GeoFeature::getGlobalPlacement(sudoThis->getObject()); + if (!asmPlc.isIdentity()) { + movePlc = asmPlc.inverse() * movePlc * asmPlc; + } + for (auto& movingObj : sudoThis->docsToMove) { App::DocumentObject* obj = movingObj.obj;