Fix fragile tile position lookup

This code didn't work when Trivabble was served as text/html, which adds
a <tbody> tag in the DOM, while this tag is not added when Trivabble is
served as application/xhtml+xml.
This commit is contained in:
Raphaël Jakse 2020-10-08 21:59:58 +02:00
parent cdd2ca777a
commit 1f9e062014
1 changed files with 12 additions and 13 deletions

View File

@ -612,33 +612,32 @@
rackBCR = rack.getBoundingClientRect();
bagBCR = bag.getBoundingClientRect();
let from;
let from = null;
let index;
let p = movingTile.parentNode;
let oldP = movingTile;
let oldOldP = null;
let p = movingTile;
while (p) {
if (p === board) {
while (p && !from) {
index = boardCells.indexOf(p);
if (index !== -1) {
from = "board";
index = boardCells.indexOf(oldOldP);
break;
}
if (p === rack) {
index = playerLetters.indexOf(p);
if (index !== -1) {
from = "rack";
index = playerLetters.indexOf(oldP);
break;
}
oldOldP = oldP;
oldP = p;
p = p.parentNode;
}
if (!from) {
fatalError(new Error("Error: did not find the parent of the moving tile"));
return;
}
moveCMD = {
cmd: "moveLetter",
from: from,