Browse Source

Fixed reference layer drag n drop

CPKreuz 2 years ago
parent
commit
380d1056ed

+ 4 - 2
src/PixiEditor/ViewModels/SubViewModels/Main/ClipboardViewModel.cs

@@ -53,6 +53,8 @@ internal class ClipboardViewModel : SubViewModel<ViewModelMain>
         doc.Operations.ImportReferenceLayer(
             pixels.ToImmutableArray(),
             surface.image.Size);
+
+        Application.Current.MainWindow!.Activate();
     }
     
     [Command.Internal("PixiEditor.Clipboard.PasteReferenceLayerFromPath")]
@@ -123,9 +125,9 @@ internal class ClipboardViewModel : SubViewModel<ViewModelMain>
     }
 
     [Evaluator.CanExecute("PixiEditor.Clipboard.CanPaste")]
-    public bool CanPaste()
+    public bool CanPaste(object parameter)
     {
-        return Owner.DocumentIsNotNull(null) && ClipboardController.IsImageInClipboard();
+        return Owner.DocumentIsNotNull(null) && parameter is DataObject data ? ClipboardController.IsImage(data) : ClipboardController.IsImageInClipboard();
     }
 
     [Evaluator.CanExecute("PixiEditor.Clipboard.CanPasteColor")]

+ 0 - 16
src/PixiEditor/ViewModels/SubViewModels/Main/LayersViewModel.cs

@@ -326,22 +326,6 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
     public bool ReferenceLayerDoesntExist() => 
         Owner.DocumentManagerSubViewModel.ActiveDocument is not null && Owner.DocumentManagerSubViewModel.ActiveDocument.ReferenceLayerViewModel.ReferenceBitmap is null;
 
-    [Evaluator.CanExecute("PixiEditor.Layer.ReferenceLayerDoesntExistAndHasClipboardContent")]
-    public bool ReferenceLayerDoesntExistAndHasClipboardContent(DataObject data)
-    {
-        if (!ReferenceLayerDoesntExist())
-        {
-            return false;
-        }
-        
-        if (data != null)
-        {
-            return Owner.DocumentIsNotNull(null) && ClipboardController.IsImage(data);
-        }
-        
-        return Owner.ClipboardSubViewModel.CanPaste();
-    }
-
     [Command.Basic("PixiEditor.Layer.ImportReferenceLayer", "ADD_REFERENCE_LAYER", "ADD_REFERENCE_LAYER", CanExecute = "PixiEditor.Layer.ReferenceLayerDoesntExist")]
     public void ImportReferenceLayer()
     {