From 58403fde5bb9666da5fcdca44537eed3ec4d6d56 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Tue, 5 Oct 2021 04:25:50 +0800 Subject: [PATCH] [Mobile] fix accuracy for mouse hover --- forge-gui-mobile/src/forge/toolbox/FDisplayObject.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java b/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java index fea12a2ba1f..f004b89d760 100644 --- a/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java +++ b/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java @@ -128,6 +128,7 @@ public abstract class FDisplayObject { public abstract void draw(Graphics g); public void buildTouchListeners(float screenX, float screenY, List listeners) { + boolean exact = !GuiBase.isAndroid() && (this instanceof FCardPanel); if (enabled && visible && screenPos.contains(screenX, screenY)) { listeners.add(this); } @@ -136,7 +137,11 @@ public abstract class FDisplayObject { Forge.hoveredCount = listeners.size(); if (!Forge.getCurrentScreen().toString().contains("Match")) Forge.hoveredCount = 1; - setHovered(this.enabled && this.visible && this.screenPos.contains(screenX, screenY) && Forge.hoveredCount < 2); + if (exact) { + setHovered(this.enabled && this.visible && ((FCardPanel) this).renderedCardContains(screenToLocalX(screenX), screenToLocalY(screenY)) && Forge.hoveredCount < 2); + } else { + setHovered(this.enabled && this.visible && this.screenPos.contains(screenX, screenY) && Forge.hoveredCount < 2); + } } }