aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2020-08-02 18:59:35 -0400
committerGitHub <noreply@github.com>2020-08-02 18:59:35 -0400
commit1184320e3e0863c86238a68bc90dc77b3355e332 (patch)
tree1b3a88b211cb6d23b1f0119816d4a124f03f34c6
parentbdcdf9b1f5430760be605a7a5e84440e324de7b5 (diff)
Button and image scanning (#705)
* Update TextSourceElement.equals check to match TextSourceRange.equals * Force full query to be visible when scanning buttons or images with more text * Update style of query parser
-rw-r--r--ext/fg/js/frontend.js43
-rw-r--r--ext/fg/js/source.js11
-rw-r--r--ext/mixed/css/display.css6
3 files changed, 38 insertions, 22 deletions
diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js
index 7bc104a7..685dbd28 100644
--- a/ext/fg/js/frontend.js
+++ b/ext/fg/js/frontend.js
@@ -20,6 +20,7 @@
* FrameOffsetForwarder
* PopupProxy
* TextScanner
+ * TextSourceElement
* api
* docSentenceExtract
*/
@@ -423,27 +424,29 @@ class Frontend {
const sentenceExtent = this._options.anki.sentenceExt;
const layoutAwareScan = this._options.scanning.layoutAwareScan;
const sentence = docSentenceExtract(textSource, sentenceExtent, layoutAwareScan);
- this._showPopupContent(
- textSource,
- optionsContext,
- {
- focus,
- history: false,
- params: {
- type,
- query: textSource.text(),
- wildcards: 'off'
- },
- state: {
- focusEntry: 0,
- sentence,
- url
- },
- content: {
- definitions
- }
+ const query = textSource.text();
+ const details = {
+ focus,
+ history: false,
+ params: {
+ type,
+ query,
+ wildcards: 'off'
+ },
+ state: {
+ focusEntry: 0,
+ sentence,
+ url
+ },
+ content: {
+ definitions
}
- );
+ };
+ if (textSource instanceof TextSourceElement && textSource.fullContent !== query) {
+ details.params.full = textSource.fullContent;
+ details.params['full-visible'] = 'true';
+ }
+ this._showPopupContent(textSource, optionsContext, details);
}
_showPopupContent(textSource, optionsContext, details=null) {
diff --git a/ext/fg/js/source.js b/ext/fg/js/source.js
index 38810f07..70f14179 100644
--- a/ext/fg/js/source.js
+++ b/ext/fg/js/source.js
@@ -32,6 +32,14 @@ class TextSourceRange {
this.imposterSourceElement = imposterSourceElement;
}
+ get startOffset() {
+ return this.range.startOffset;
+ }
+
+ get endOffset() {
+ return this.range.endOffset;
+ }
+
clone() {
return new TextSourceRange(this.range.cloneRange(), this.content, this.imposterContainer, this.imposterSourceElement);
}
@@ -230,8 +238,7 @@ class TextSourceElement {
other instanceof TextSourceElement &&
this._element === other.element &&
this._fullContent === other.fullContent &&
- this._startOffset === other.startOffset &&
- this._endOffset === other.endOffset
+ this._startOffset === other.startOffset
);
}
diff --git a/ext/mixed/css/display.css b/ext/mixed/css/display.css
index f5d9403a..5af211bb 100644
--- a/ext/mixed/css/display.css
+++ b/ext/mixed/css/display.css
@@ -217,6 +217,12 @@ h2 {
display: none;
}
+:root[data-yomichan-page=float] #query-parser-container {
+ padding-left: 0.72em;
+ padding-right: 0.72em;
+ border-bottom: 0.07142857142857142em solid var(--light-border-color); /* 14px => 1px */
+}
+
/*
* Entries