From c00b4ed9c2eece9fb2a58fd89188d3a3d7700e28 Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Wed, 2 Dec 2020 20:34:41 +0100
Subject: [PATCH] Prevent drag and drop while pad is loading

---
 .../playpad/layout/desktop/pad/DesktopPadDragListener.java    | 4 ++++
 .../playpad/plugin/content/pad/ContentPlayerPadContent.scala  | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadDragListener.java b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadDragListener.java
index 4c4487aa..7ff5cd64 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadDragListener.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadDragListener.java
@@ -104,6 +104,10 @@ public class DesktopPadDragListener implements EventHandler<DragEvent> {
 			final PadContentRegistry registry = PlayPadPlugin.getRegistries().getPadContents();
 			final List<PadContentFactory> supportedContentTypes = registry.getPadContentConnectsForFiles(paths);
 
+			if (currentPad.getContent() != null && currentPad.getContent().isPadLoaded()) {
+				return;
+			}
+
 			final List<ContentDragOption> contentDragOptions = new ArrayList<>(supportedContentTypes);
 
 			if (currentPad.getContent() instanceof Playlistable) {
diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala
index 21003ee5..c32351fc 100644
--- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala
+++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala
@@ -169,7 +169,7 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte
 	 */
 
 	override def isPadLoaded: Boolean = {
-		mediaPlayers.isNotEmpty
+		mediaPlayers.isNotEmpty && mediaPlayers.stream().anyMatch(player => player.mediaPlayer.getStatus == MediaPlayer.Status.UNKNOWN)
 	}
 
 	/**
-- 
GitLab