From 288255f0746e3b34aaf9edd01dad5356b041ca76 Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Sun, 7 Sep 2025 01:24:56 +0200 Subject: [PATCH] Gui: Disallow dragging features outside of body --- src/Mod/PartDesign/Gui/ViewProviderBody.cpp | 10 ++++++++++ src/Mod/PartDesign/Gui/ViewProviderBody.h | 1 + 2 files changed, 11 insertions(+) diff --git a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp index 639e926aa7..f484dab3ce 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp @@ -453,3 +453,13 @@ void ViewProviderBody::dropObject(App::DocumentObject* obj) } } } +bool ViewProviderBody::canDragObjectToTarget(App::DocumentObject* obj, + App::DocumentObject* target) const +{ + if (obj->isDerivedFrom()) { + return target && target->is(); + } + + return ViewProviderPart::canDragObjectToTarget(obj, target); +} + diff --git a/src/Mod/PartDesign/Gui/ViewProviderBody.h b/src/Mod/PartDesign/Gui/ViewProviderBody.h index da174dc98c..4b60dbc2b8 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderBody.h +++ b/src/Mod/PartDesign/Gui/ViewProviderBody.h @@ -88,6 +88,7 @@ public: bool canDropObject(App::DocumentObject*) const override; /** Add an object to the view provider by drag and drop */ void dropObject(App::DocumentObject*) override; + bool canDragObjectToTarget(App::DocumentObject* obj, App::DocumentObject* target) const override; protected: /// Copy over all visual properties to the child features