diff options
-rw-r--r-- | migemized_find.js | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/migemized_find.js b/migemized_find.js index 7fcfc8a..d56d05c 100644 --- a/migemized_find.js +++ b/migemized_find.js @@ -24,9 +24,25 @@ // findMode := FIND_MODE_NATIVE | FIND_MODE_MIGEMO | FIND_MODE_REGEXP + let elem = document.getElementById('FindToolbar').getElement('findbar-textbox'); + const DOMUtils = Components.classes["@mozilla.org/inspector/dom-utils;1"]. + getService(Components.interfaces["inIDOMUtils"]); + + let previousKeyword = null; let lastKeyword = null; let original = {}; + const findbarTextbox = document.getElementById('FindToolbar').getElement('findbar-textbox'); + + // アレな方法で not found を検出 + function isNotFound () { + let rules = DOMUtils.getCSSStyleRules(elem); + for (let i = 0; i < rules.Count(); i++) { + if (rules.GetElementAt(i).selectorText.indexOf('notfound') >= 0) + return true; + } + } + // 検索文字列から検索モードと検索文字列を得る。 function getFindMode (str) { let [head, tail] = [str[0], str.slice(1)]; @@ -47,19 +63,23 @@ if (!word) return; XMigemoFind.findMode = mode; - XMigemoFind.find(backwards, lastKeyword = word, true); + let found = XMigemoFind.find(backwards, lastKeyword = word, true); + liberator.log(XMigemoFind.NOTFOUND); }, findAgain: function findAgain (reverse) { - XMigemoFind.find(reverse, lastKeyword, true); + let found = XMigemoFind.find(reverse, lastKeyword || previousKeyword, true); + liberator.log(XMigemoFind.NOTFOUND); }, searchSubmitted: function searchSubmitted (command, forcedBackward) { + previousKeyword = lastKeyword; XMigemoFind.clear(false); liberator.modes.reset(); }, searchCanceled: function searchCanceled () { + lastKeyword = null; XMigemoFind.clear(false); }, }; |