From bbbd23c842fae4a6f21afcf91fb797dd6f5709f7 Mon Sep 17 00:00:00 2001 From: siikamiika Date: Sat, 26 Oct 2019 19:12:13 +0300 Subject: add button to enable/disable wanakana IME --- ext/bg/js/search.js | 40 +++++++++++++++++++++++++++++++--------- ext/bg/search.html | 8 ++++++-- 2 files changed, 37 insertions(+), 11 deletions(-) (limited to 'ext') diff --git a/ext/bg/js/search.js b/ext/bg/js/search.js index 8d2e7bf2..11d1d871 100644 --- a/ext/bg/js/search.js +++ b/ext/bg/js/search.js @@ -29,7 +29,8 @@ class DisplaySearch extends Display { this.search = document.querySelector('#search'); this.query = document.querySelector('#query'); this.intro = document.querySelector('#intro'); - this.clipboardMonitorCheck = document.querySelector('#clipboard-monitor'); + this.clipboardMonitorEnable = document.querySelector('#clipboard-monitor-enable'); + this.wanakanaEnable = document.querySelector('#wanakana-enable'); this.introVisible = true; this.introAnimationTimer = null; @@ -54,17 +55,31 @@ class DisplaySearch extends Display { if (this.query !== null) { this.query.addEventListener('input', () => this.onSearchInput(), false); - const query = DisplaySearch.getSearchQueryFromLocation(window.location.href); + if (this.wanakanaEnable !== null) { + if (this.wanakanaEnable.checked) { + window.wanakana.bind(this.query); + } + this.wanakanaEnable.addEventListener('change', (e) => { + if (e.target.checked) { + window.wanakana.bind(this.query); + } else { + window.wanakana.unbind(this.query); + } + }); + } + + let query = DisplaySearch.getSearchQueryFromLocation(window.location.href); if (query !== null) { - this.query.value = window.wanakana.toKana(query); + if (this.wanakanaEnable !== null && this.wanakanaEnable.checked) { + query = window.wanakana.toKana(query); + } + this.query.value = query; window.history.replaceState({query}, ''); this.onSearchQueryUpdated(query, false); } - - window.wanakana.bind(this.query); } - if (this.clipboardMonitorCheck !== null) { - this.clipboardMonitorCheck.addEventListener('change', (e) => { + if (this.clipboardMonitorEnable !== null) { + this.clipboardMonitorEnable.addEventListener('change', (e) => { if (e.target.checked) { this.startClipboardMonitor(); } else { @@ -203,13 +218,20 @@ class DisplaySearch extends Display { initClipboardMonitor() { // ignore copy from search page window.addEventListener('copy', (e) => { - this.clipboardPrevText = document.getSelection().toString().trim(); + let prevText = document.getSelection().toString().trim(); + if (this.wanakanaEnable !== null && this.wanakanaEnable.checked) { + prevText = window.wanakana.toKana(prevText); + } + this.clipboardPrevText = prevText; }); } startClipboardMonitor() { this.clipboardMonitorIntervalId = setInterval(async () => { - const curText = (await navigator.clipboard.readText()).trim(); + let curText = (await navigator.clipboard.readText()).trim(); + if (this.wanakanaEnable !== null && this.wanakanaEnable.checked) { + curText = window.wanakana.toKana(curText); + } if (curText && (curText !== this.clipboardPrevText)) { this.query.value = curText; this.onSearch(); diff --git a/ext/bg/search.html b/ext/bg/search.html index 1e650be0..11dca5a2 100644 --- a/ext/bg/search.html +++ b/ext/bg/search.html @@ -20,9 +20,13 @@
+ + + + - - + +
-- cgit v1.2.3