Browse Source

Fixed layer drag drop bug

Krzysztof Krysiński 3 months ago
parent
commit
e0fc35a520

+ 1 - 0
src/PixiEditor/Views/Layers/LayerControl.axaml

@@ -42,6 +42,7 @@
                 <RowDefinition Height="10" />
                 <RowDefinition Height="26" />
             </Grid.RowDefinitions>
+            <Panel Grid.ColumnSpan="2" Grid.RowSpan="2" Name="BackgroundGrid" Background="Transparent" DragDrop.AllowDrop="True"/>
             <Grid DragDrop.AllowDrop="True"
                   Name="TopGrid"
                   Grid.Row="0" Grid.ColumnSpan="3" Background="Transparent" />

+ 7 - 1
src/PixiEditor/Views/Layers/LayerControl.axaml.cs

@@ -89,6 +89,7 @@ internal partial class LayerControl : UserControl
         TopGrid.AddHandler(DragDrop.DragEnterEvent, Grid_DragEnter);
         TopGrid.AddHandler(DragDrop.DragLeaveEvent, Grid_DragLeave);
         TopGrid.AddHandler(DragDrop.DropEvent, Grid_Drop_Top);
+        BackgroundGrid.AddHandler(DragDrop.DropEvent, BackgroundGrid_Drop);
         dropBelowGrid.AddHandler(DragDrop.DragEnterEvent, Grid_DragEnter);
         dropBelowGrid.AddHandler(DragDrop.DragLeaveEvent, Grid_DragLeave);
         dropBelowGrid.AddHandler(DragDrop.DropEvent, Grid_Drop_Below);
@@ -136,6 +137,11 @@ internal partial class LayerControl : UserControl
             RemoveDragEffect(item);
     }
 
+    private void BackgroundGrid_Drop(object sender, DragEventArgs e)
+    {
+        e.Handled = true;
+    }
+
     public static Guid[]? ExtractMemberGuids(IDataObject droppedMemberDataObject)
     {
         object droppedLayer = droppedMemberDataObject.Get(LayersManager.LayersDataName);
@@ -163,7 +169,7 @@ internal partial class LayerControl : UserControl
         if (Layer is null)
             return false;
 
-        if(placement is StructureMemberPlacement.Below or StructureMemberPlacement.BelowOutsideFolder)
+        if (placement is StructureMemberPlacement.Below or StructureMemberPlacement.BelowOutsideFolder)
         {
             droppedMemberGuids = droppedMemberGuids.Reverse().ToArray();
         }