diff --git a/ext/fg/js/client.js b/ext/fg/js/client.js index 587ced86..16ee0b24 100644 --- a/ext/fg/js/client.js +++ b/ext/fg/js/client.js @@ -22,7 +22,7 @@ class Client { this.popup = new Popup(); this.audio = {}; this.lastMousePos = null; - this.lastRange = null; + this.lastTextSource = null; this.activateKey = 16; this.activateBtn = 2; this.enabled = false; @@ -87,31 +87,35 @@ class Client { } } + textSourceFromPoint(point) { + return Range.fromPoint(point); + } + searchAt(point) { - const range = Range.fromPoint(point); - if (range === null || !range.containsPoint(point)) { + const textSource = this.textSourceFromPoint(point); + if (textSource === null || !textSource.containsPoint(point)) { this.hidePopup(); return; } - if (this.lastRange !== null && this.lastRange.compareOrigin(range) === 0) { + if (this.lastTextSource !== null && this.lastTextSource.compareOrigin(textSource) === 0) { return; } - range.setLength(this.options.scanLength); - bgFindTerm(range.text(), ({definitions, length}) => { + textSource.setLength(this.options.scanLength); + bgFindTerm(textSource.text(), ({definitions, length}) => { if (length === 0) { this.hidePopup(); } else { const sequence = ++this.sequence; - range.setLength(length); + textSource.setLength(length); bgRenderText( {definitions, root: this.fgRoot, options: this.options, sequence}, 'term-list.html', (content) => { this.definitions = definitions; - this.showPopup(range, content); + this.showPopup(textSource, content); bgCanAddDefinitions(definitions, ['vocab_kanji', 'vocab_kana'], (states) => { if (states !== null) { @@ -124,24 +128,24 @@ class Client { }); } - showPopup(range, content) { - this.popup.showNextTo(range.getRect(), content); + showPopup(textSource, content) { + this.popup.showNextTo(textSource.getRect(), content); if (this.options.selectMatchedText) { - range.select(); + textSource.select(); } - this.lastRange = range; + this.lastTextSource = textSource; } hidePopup() { this.popup.hide(); - if (this.options.selectMatchedText && this.lastRange !== null) { - this.lastRange.deselect(); + if (this.options.selectMatchedText && this.lastTextSource !== null) { + this.lastTextSource.deselect(); } - this.lastRange = null; + this.lastTextSource = null; this.definitions = null; } diff --git a/ext/fg/js/image.js b/ext/fg/js/source-image.js similarity index 100% rename from ext/fg/js/image.js rename to ext/fg/js/source-image.js diff --git a/ext/fg/js/range.js b/ext/fg/js/source-range.js similarity index 100% rename from ext/fg/js/range.js rename to ext/fg/js/source-range.js diff --git a/ext/manifest.json b/ext/manifest.json index 707900c9..b92ee912 100644 --- a/ext/manifest.json +++ b/ext/manifest.json @@ -11,7 +11,13 @@ "background": {"page": "bg/background.html"}, "content_scripts": [{ "matches": ["*://*/*"], - "js": ["fg/js/range.js", "fg/js/popup.js", "fg/js/api.js", "fg/js/client.js"], + "js": [ + "fg/js/source-range.js", + "fg/js/source-image.js", + "fg/js/popup.js", + "fg/js/api.js", + "fg/js/client.js" + ], "css": ["fg/css/client.css"] }], "minimum_chrome_version": "45.0.0.0",