aboutsummaryrefslogtreecommitdiff
path: root/ext/mixed/js
diff options
context:
space:
mode:
authorsiikamiika <siikamiika@users.noreply.github.com>2020-03-13 23:23:08 +0200
committersiikamiika <siikamiika@users.noreply.github.com>2020-03-21 22:13:07 +0200
commit962c2a381f3dace4d97fd0625504ec841e378354 (patch)
tree92ea4bee6a3a70f61965e98ca143b2a18cfcdad3 /ext/mixed/js
parent647769f2baae338f201690f21c4bf8983bcb10b0 (diff)
apply all options on profile change
Diffstat (limited to 'ext/mixed/js')
-rw-r--r--ext/mixed/js/display.js18
-rw-r--r--ext/mixed/js/text-scanner.js7
2 files changed, 14 insertions, 11 deletions
diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js
index 515e28a7..9a7a91f3 100644
--- a/ext/mixed/js/display.js
+++ b/ext/mixed/js/display.js
@@ -40,6 +40,7 @@ class Display {
this.spinner = spinner;
this.container = container;
this.definitions = [];
+ this.optionsContext = null;
this.options = null;
this.context = null;
this.index = 0;
@@ -165,12 +166,11 @@ class Display {
this.setInteractive(true);
}
- async prepare(options=null) {
+ async prepare() {
await yomichan.prepare();
- const displayGeneratorPromise = this.displayGenerator.prepare();
- const updateOptionsPromise = this.updateOptions(options);
- await Promise.all([displayGeneratorPromise, updateOptionsPromise]);
- yomichan.on('optionsUpdated', () => this.updateOptions(null));
+ await this.displayGenerator.prepare();
+ await this.updateOptions();
+ yomichan.on('optionsUpdated', () => this.updateOptions());
}
onError(_error) {
@@ -369,11 +369,11 @@ class Display {
}
getOptionsContext() {
- throw new Error('Override me');
+ return this.optionsContext;
}
- async updateOptions(options) {
- this.options = options ? options : await apiOptionsGet(this.getOptionsContext());
+ async updateOptions() {
+ this.options = await apiOptionsGet(this.getOptionsContext());
this.updateDocumentOptions(this.options);
this.updateTheme(this.options.general.popupTheme);
this.setCustomCss(this.options.general.customPopupCss);
@@ -851,7 +851,7 @@ class Display {
}
setPopupVisibleOverride(visible) {
- return apiForward('popupSetVisibleOverride', {visible});
+ return apiForward('popupSetVisibleOverride', {visible, targetPopupId: 'all'});
}
setSpinnerVisible(visible) {
diff --git a/ext/mixed/js/text-scanner.js b/ext/mixed/js/text-scanner.js
index a08e09fb..b8156c01 100644
--- a/ext/mixed/js/text-scanner.js
+++ b/ext/mixed/js/text-scanner.js
@@ -23,13 +23,15 @@
*/
class TextScanner {
- constructor(node, ignoreNodes, ignoreElements, ignorePoints) {
+ constructor(node, ignoreElements, ignorePoints) {
this.node = node;
- this.ignoreNodes = (Array.isArray(ignoreNodes) && ignoreNodes.length > 0 ? ignoreNodes.join(',') : null);
this.ignoreElements = ignoreElements;
this.ignorePoints = ignorePoints;
+ this.ignoreNodes = null;
+
this.scanTimerPromise = null;
+ this.causeCurrent = null;
this.textSourceCurrent = null;
this.pendingLookup = false;
this.options = null;
@@ -298,6 +300,7 @@ class TextScanner {
this.pendingLookup = true;
const result = await this.onSearchSource(textSource, cause);
if (result !== null) {
+ this.causeCurrent = cause;
this.textSourceCurrent = textSource;
if (this.options.scanning.selectText) {
textSource.select();