aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/fg/js/text-source-element.js13
-rw-r--r--ext/fg/js/text-source-range.js12
2 files changed, 25 insertions, 0 deletions
diff --git a/ext/fg/js/text-source-element.js b/ext/fg/js/text-source-element.js
index a0e1254f..43526060 100644
--- a/ext/fg/js/text-source-element.js
+++ b/ext/fg/js/text-source-element.js
@@ -40,6 +40,10 @@ class TextSourceElement {
return this._endOffset;
}
+ get isConnected() {
+ return this._element.isConnected;
+ }
+
clone() {
return new TextSourceElement(this._element, this._fullContent, this._startOffset, this._endOffset);
}
@@ -73,6 +77,15 @@ class TextSourceElement {
return delta;
}
+ collapse(toStart) {
+ if (toStart) {
+ this._endOffset = this._startOffset;
+ } else {
+ this._startOffset = this._endOffset;
+ }
+ this._content = '';
+ }
+
getRect() {
return this._element.getBoundingClientRect();
}
diff --git a/ext/fg/js/text-source-range.js b/ext/fg/js/text-source-range.js
index 60086e7f..377016da 100644
--- a/ext/fg/js/text-source-range.js
+++ b/ext/fg/js/text-source-range.js
@@ -41,6 +41,13 @@ class TextSourceRange {
return this._imposterSourceElement;
}
+ get isConnected() {
+ return (
+ this._range.startContainer.isConnected &&
+ this._range.endContainer.isConnected
+ );
+ }
+
clone() {
return new TextSourceRange(this._range.cloneRange(), this._content, this._imposterContainer, this._imposterSourceElement);
}
@@ -74,6 +81,11 @@ class TextSourceRange {
return length - state.remainder;
}
+ collapse(toStart) {
+ this._range.collapse(toStart);
+ this._content = '';
+ }
+
getRect() {
return this._range.getBoundingClientRect();
}