From b665fda4dfd048bbbc233387da351ecdc60d6e26 Mon Sep 17 00:00:00 2001 From: Roy-043 Date: Thu, 17 Oct 2024 09:25:44 +0200 Subject: [PATCH] Draft: Improve layer drag-drop fix. The fix in #16212 only checks the LayerContainer for layers. Since we do not stop users from moving layers out of that container, we should search the whole document instead. Fixes: #16201. --- src/Mod/Draft/draftfunctions/svg.py | 5 +++++ src/Mod/Draft/draftviewproviders/view_layer.py | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/Mod/Draft/draftfunctions/svg.py b/src/Mod/Draft/draftfunctions/svg.py index 93571f71a1..2b30ccb55b 100644 --- a/src/Mod/Draft/draftfunctions/svg.py +++ b/src/Mod/Draft/draftfunctions/svg.py @@ -910,9 +910,14 @@ def _get_layer(obj): finds = obj.Document.findObjects(Name="LayerContainer") if not finds: return None + # First look in the LayerContainer: for layer in finds[0].Group: if utils.get_type(layer) == "Layer" and obj in layer.Group: return layer + # If not found, look through all App::FeaturePython objects (not just layers): + for find in obj.Document.findObjects(Type="App::FeaturePython"): + if utils.get_type(find) == "Layer" and obj in find.Group: + return find return None diff --git a/src/Mod/Draft/draftviewproviders/view_layer.py b/src/Mod/Draft/draftviewproviders/view_layer.py index a4d676ebb9..469207a12d 100644 --- a/src/Mod/Draft/draftviewproviders/view_layer.py +++ b/src/Mod/Draft/draftviewproviders/view_layer.py @@ -333,9 +333,14 @@ class ViewProviderLayer: """Get the layer the object belongs to. """ from draftmake.make_layer import get_layer_container + # First look in the LayerContainer: for layer in get_layer_container().Group: if utils.get_type(layer) == "Layer" and obj in layer.Group: return layer + # If not found, look through all App::FeaturePython objects (not just layers): + for find in obj.Document.findObjects(Type="App::FeaturePython"): + if utils.get_type(find) == "Layer" and obj in find.Group: + return find return None def canDragObject(self, obj):