From 8ff377444a039dcc5dd772953a972ed5a91acc08 Mon Sep 17 00:00:00 2001 From: Michael Kamensky Date: Mon, 8 Nov 2021 07:12:16 +0300 Subject: [PATCH] - Implement right clicking to zoom in mobile backport (desktop use only). --- forge-gui-mobile/src/forge/Forge.java | 2 ++ .../forge/screens/match/views/VCardDisplayArea.java | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index f447666b60b..0486926899b 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -85,6 +85,7 @@ public class Forge implements ApplicationListener { public static String CJK_Font = ""; public static int hoveredCount = 0; public static boolean afterDBloaded = false; + public static int mouseButtonID = 0; public static ApplicationListener getApp(Clipboard clipboard0, IDeviceAdapter deviceAdapter0, String assetDir0, boolean value, boolean androidOrientation, int totalRAM, boolean isTablet, int AndroidAPI, String AndroidRelease, String deviceName) { if (GuiBase.getInterface() == null) { @@ -771,6 +772,7 @@ public class Forge implements ApplicationListener { } } } + mouseButtonID = button; return super.touchDown(x, y, pointer, button); } diff --git a/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java b/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java index 53797b22aff..30f6773cd40 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java @@ -6,8 +6,10 @@ import java.util.List; import java.util.Map; import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; import com.badlogic.gdx.math.Vector2; +import forge.Forge; import forge.Graphics; import forge.card.CardRenderer.CardStackPosition; import forge.card.CardZoom; @@ -324,7 +326,15 @@ public abstract class VCardDisplayArea extends VDisplayArea implements ActivateH ThreadUtil.invokeInGameThread(new Runnable() { //must invoke in game thread in case a dialog needs to be shown @Override public void run() { - if (!selectCard(false)) { + if (GuiBase.getInterface().isRunningOnDesktop() && Forge.mouseButtonID == Input.Buttons.RIGHT) { + FThreads.invokeInEdtLater(new Runnable() { + @Override + public void run() { + showZoom(); + } + }); + return; + } else if (!selectCard(false)) { //if no cards in stack can be selected, just show zoom/details for card FThreads.invokeInEdtLater(new Runnable() { @Override