diff options
Diffstat (limited to 'ext/fg/js')
| -rw-r--r-- | ext/fg/js/client.js | 2 | ||||
| -rw-r--r-- | ext/fg/js/source-image.js | 29 | ||||
| -rw-r--r-- | ext/fg/js/source-range.js | 4 | 
3 files changed, 19 insertions, 16 deletions
| diff --git a/ext/fg/js/client.js b/ext/fg/js/client.js index 46e4683e..67400f34 100644 --- a/ext/fg/js/client.js +++ b/ext/fg/js/client.js @@ -108,7 +108,7 @@ class Client {              return;          } -        if (this.lastTextSource !== null && this.lastTextSource.compareOrigin(textSource) === 0) { +        if (this.lastTextSource !== null && this.lastTextSource.equals(textSource)) {              return;          } diff --git a/ext/fg/js/source-image.js b/ext/fg/js/source-image.js index 187b0a1d..8c87e31e 100644 --- a/ext/fg/js/source-image.js +++ b/ext/fg/js/source-image.js @@ -17,40 +17,43 @@   */ -class Image { +class ImageSource {      constructor(image) { - +        this.img = image; +        this.length = -1;      }      text() { +        const text = this.textRaw(); +        return this.length < 0 ? text : text.substring(0, this.length); +    } +    textRaw() { +        return this.img.getAttribute('alt') || '';      }      setLength(length) { - +        this.length = length;      }      containsPoint(point) { - +        const rect = this.getRect(); +        return point.x >= rect.left && point.x <= rect.right;      }      getRect() { - -    } - -    getPaddedRect() { - +        return this.img.getBoundingClientRect();      }      select() { - +        // NOP      }      deselect() { - +        // NOP      } -    compareOrigin(range) { - +    equals(other) { +        return other.img && other.textRaw() == this.textRaw();      }  } diff --git a/ext/fg/js/source-range.js b/ext/fg/js/source-range.js index a6c3d722..bd13a1b6 100644 --- a/ext/fg/js/source-range.js +++ b/ext/fg/js/source-range.js @@ -63,8 +63,8 @@ class RangeSource {          selection.removeAllRanges();      } -    compareOrigin(range) { -        return range.rng.compareBoundaryPoints(Range.START_TO_START, this.rng); +    equals(other) { +        return other.rng && other.rng.compareBoundaryPoints(Range.START_TO_START, this.rng) == 0;      }      static seekEnd(node, length) { |