diff options
author | guidocella <guidocella91@gmail.com> | 2017-12-16 19:56:53 +0100 |
---|---|---|
committer | guidocella <guidocella91@gmail.com> | 2017-12-16 19:56:53 +0100 |
commit | 15b93060c76ee4d59eb8ef90f6e1f8dea4c34ac9 (patch) | |
tree | 7c0d664473c8472661b9c41c63eb7e5fd01d9706 /ext/fg/js | |
parent | a17e84de83e3f8750d41acf942c4fe476230d83a (diff) |
Add option to play audio automatically
Diffstat (limited to 'ext/fg/js')
-rw-r--r-- | ext/fg/js/float.js | 18 | ||||
-rw-r--r-- | ext/fg/js/frontend.js | 1 | ||||
-rw-r--r-- | ext/fg/js/popup.js | 6 |
3 files changed, 25 insertions, 0 deletions
diff --git a/ext/fg/js/float.js b/ext/fg/js/float.js index ff50483d..1f08702d 100644 --- a/ext/fg/js/float.js +++ b/ext/fg/js/float.js @@ -20,6 +20,8 @@ class DisplayFloat extends Display { constructor() { super($('#spinner'), $('#definitions')); + this.autoPlayAudioTimer = null; + $(window).on('message', utilAsync(this.onMessage.bind(this))); } @@ -54,6 +56,10 @@ class DisplayFloat extends Display { this.kanjiShow(definitions, options, context); }, + clearAutoPlayTimer: () => { + this.clearAutoPlayTimer(); + }, + orphaned: () => { this.onOrphaned(); } @@ -83,6 +89,18 @@ class DisplayFloat extends Display { super.onKeyDown(e); } } + + autoPlayAudio() { + this.clearAutoPlayTimer(); + this.autoPlayAudioTimer = window.setTimeout(() => super.autoPlayAudio(), 400); + } + + clearAutoPlayTimer() { + if (this.autoPlayAudioTimer) { + window.clearTimeout(this.autoPlayAudioTimer); + this.autoPlayAudioTimer = null; + } + } } window.yomichan_display = new DisplayFloat(); diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index 3a90b3ad..266f9640 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -254,6 +254,7 @@ class Frontend { searchClear() { docImposterDestroy(); this.popup.hide(); + this.popup.clearAutoPlayTimer(); if (this.options.scanning.selectText && this.textSourceLast) { this.textSourceLast.deselect(); diff --git a/ext/fg/js/popup.js b/ext/fg/js/popup.js index d1009fe9..a17b184a 100644 --- a/ext/fg/js/popup.js +++ b/ext/fg/js/popup.js @@ -125,6 +125,12 @@ class Popup { this.invokeApi('kanjiShow', {definitions, options, context}); } + clearAutoPlayTimer() { + if (this.injected) { + this.invokeApi('clearAutoPlayTimer'); + } + } + invokeApi(action, params={}) { this.container.contentWindow.postMessage({action, params}, '*'); } |