diff options
Diffstat (limited to 'ext/fg/js/util.js')
| -rw-r--r-- | ext/fg/js/util.js | 22 | 
1 files changed, 12 insertions, 10 deletions
diff --git a/ext/fg/js/util.js b/ext/fg/js/util.js index e5705ffd..c6270ce6 100644 --- a/ext/fg/js/util.js +++ b/ext/fg/js/util.js @@ -112,18 +112,12 @@ function docImposterDestroy() {      }  } -function docImposterHide() { -    for (const element of document.getElementsByClassName('yomichan-imposter')) { -        element.style.visibility = 'hidden'; -    } -} - -function docRangeFromPoint(point, imposter) { +function docRangeFromPoint(point) {      const element = document.elementFromPoint(point.x, point.y);      if (element !== null) {          if (element.nodeName === 'IMG' || element.nodeName === 'BUTTON') {              return new TextSourceElement(element); -        } else if (imposter && (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA')) { +        } else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {              docImposterCreate(element);          }      } @@ -144,11 +138,9 @@ function docRangeFromPoint(point, imposter) {      const range = document.caretRangeFromPoint(point.x, point.y);      if (range !== null) { -        docImposterHide();          return new TextSourceRange(range);      } -    docImposterDestroy();      return null;  } @@ -168,6 +160,11 @@ function docSentenceExtract(source, extent) {      for (let i = position; i >= startPos; --i) {          const c = content[i]; +        if (c === '\n') { +            startPos = i + 1; +            break; +        } +          if (quoteStack.length === 0 && (terminators.includes(c) || c in quotesFwd)) {              startPos = i + 1;              break; @@ -186,6 +183,11 @@ function docSentenceExtract(source, extent) {      for (let i = position; i <= endPos; ++i) {          const c = content[i]; +        if (c === '\n') { +            endPos = i + 1; +            break; +        } +          if (quoteStack.length === 0) {              if (terminators.includes(c)) {                  endPos = i + 1;  |