From: Benjamin Auder <benjamin.auder@somewhere>
Date: Tue, 29 Dec 2020 16:51:24 +0000 (+0100)
Subject: Emulate hovering for smartphones: require confirmation click
X-Git-Url: https://git.auder.net/variants/Chakart/css/assets/current/doc/%7B%7B%20targetUrl%20%7D%7D?a=commitdiff_plain;h=95bc4bf5248120712946500416543bbfc6b7ae85;p=vchess.git

Emulate hovering for smartphones: require confirmation click
---

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