From adf57a06772f5934a7171b4ac0babed35a860b20 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Thu, 30 Nov 2023 11:20:05 +0400 Subject: [PATCH] fixed regression with clicks (closes #11493) --- .../plugins/adapters/MageActionCallback.java | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java b/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java index 1fa20a5568b..396a7d6fd01 100644 --- a/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java +++ b/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java @@ -36,7 +36,10 @@ import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import java.util.List; import java.util.*; -import java.util.concurrent.*; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; /** * Class that handles the callbacks from the card panels to mage to display big @@ -262,22 +265,27 @@ public class MageActionCallback implements ActionCallback { hideTooltipPopup(); } else if (cardPanel.getZone() == Zone.HAND) { // drag end - int maxXOffset = 0; + boolean needClick = false; if (isDragging) { - Point mouse = new Point(e.getX(), e.getY()); - SwingUtilities.convertPointToScreen(mouse, data.getComponent()); - maxXOffset = Math.abs((int) (mouse.getX() - initialMousePos.x)); - } - - clearDragging(cardPanel); - - this.startedDragging = false; - if (isDragging && maxXOffset < HAND_CARDS_MIN_DISTANCE_TO_START_DRAGGING) { // if user returned card to original place // outdated code, HAND_CARDS_MIN_DISTANCE_TO_START_DRAGGING already used for wrong drag protection, // so no needs in additional clicks here //logger.info("User drag card to original place"); - //simulateCardClick(data); + /* + Point mouse = new Point(e.getX(), e.getY()); + SwingUtilities.convertPointToScreen(mouse, data.getComponent()); + int dragXOffset = Math.abs((int) (mouse.getX() - initialMousePos.x)); + if (dragXOffset < HAND_CARDS_MIN_DISTANCE_TO_START_DRAGGING) { + needClick = true; + }*/ + } else { + needClick = true; + } + clearDragging(cardPanel); + this.startedDragging = false; + + if (needClick) { + simulateCardClick(data); } e.consume(); } else {