From 95bc4bf5248120712946500416543bbfc6b7ae85 Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Tue, 29 Dec 2020 17:51:24 +0100
Subject: [PATCH] Emulate hovering for smartphones: require confirmation click

---
 client/src/components/BaseGame.vue        | 20 ++++++++++++++++++--
 client/src/styles/_board_squares_img.sass |  3 +++
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/client/src/components/BaseGame.vue b/client/src/components/BaseGame.vue
index 5f825c92..ee8b1fcb 100644
--- a/client/src/components/BaseGame.vue
+++ b/client/src/components/BaseGame.vue
@@ -440,9 +440,25 @@ export default {
           else this.$refs["board"].choices = move_s;
         }
         if ("ontouchstart" in window) {
+          const squareId = "sq-" + square[0] + "-" + square[1];
+          const highlight = function(on, sq) {
+            let elt = document.getElementById(sq);
+            if (!!elt) {
+              if (on) elt.classList.add("touch-hover");
+              else elt.classList.remove("touch-hover");
+            }
+          }
           // Touch screen (smartphone): require confirmation
-          if (this.touchLastClick == square) playMove();
-          this.touchLastClick = square;
+          const squareStr = square[0] + "_" + square[1]
+          if (this.touchLastClick == squareId) {
+            highlight(false, squareId);
+            playMove();
+          }
+          else {
+            highlight(true, squareId);
+            highlight(false, this.touchLastClick);
+          }
+          this.touchLastClick = squareId;
         }
         else playMove();
       }
diff --git a/client/src/styles/_board_squares_img.sass b/client/src/styles/_board_squares_img.sass
index cccce415..4075984d 100644
--- a/client/src/styles/_board_squares_img.sass
+++ b/client/src/styles/_board_squares_img.sass
@@ -63,6 +63,9 @@ img.circle-square
 .in-shadow
   filter: brightness(50%)
 
+.touch-hover
+  background-color: #C571E6 !important
+
 .monochrome
   border-bottom: 1px solid black
   border-right: 1px solid black
-- 
2.44.0