diff --git a/extensions/typeaheadfind/resources/content/contents.rdf b/extensions/typeaheadfind/resources/content/contents.rdf new file mode 100644 index 00000000000..9a8358a3b1b --- /dev/null +++ b/extensions/typeaheadfind/resources/content/contents.rdf @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + diff --git a/extensions/typeaheadfind/resources/jar.mn b/extensions/typeaheadfind/resources/jar.mn index 52f512eb246..a858982fa20 100644 --- a/extensions/typeaheadfind/resources/jar.mn +++ b/extensions/typeaheadfind/resources/jar.mn @@ -1,4 +1,5 @@ typeaheadfind.jar: locale/en-US/typeaheadfind/contents.rdf (locale/en-US/contents.rdf) locale/en-US/typeaheadfind/typeaheadfind.properties (locale/en-US/typeaheadfind.properties) + content/typeaheadfind/contents.rdf (content/contents.rdf) diff --git a/extensions/typeaheadfind/resources/locale/en-US/contents.rdf b/extensions/typeaheadfind/resources/locale/en-US/contents.rdf index ad5ce3f72cd..921076e27e0 100644 --- a/extensions/typeaheadfind/resources/locale/en-US/contents.rdf +++ b/extensions/typeaheadfind/resources/locale/en-US/contents.rdf @@ -8,7 +8,10 @@ - + @@ -16,6 +19,6 @@ + chrome:localeVersion="1.1b"/> diff --git a/extensions/typeaheadfind/src/nsTypeAheadFind.cpp b/extensions/typeaheadfind/src/nsTypeAheadFind.cpp index 906a6fed2c2..2532583598c 100644 --- a/extensions/typeaheadfind/src/nsTypeAheadFind.cpp +++ b/extensions/typeaheadfind/src/nsTypeAheadFind.cpp @@ -842,23 +842,32 @@ nsTypeAheadFind::KeyPress(nsIDOMEvent* aEvent) // ----- Nothing found ----- DisplayStatus(PR_FALSE, nsnull, PR_FALSE); // Display failure status - nsCOMPtr soundInterface = - do_CreateInstance("@mozilla.org/sound;1"); - - if (soundInterface) { - soundInterface->Beep(); + mRepeatingMode = eRepeatingNone; + if (!isBackspace) { + // Error beep (don't been when backspace is pressed, they're + // trying to correct the mistake!) + nsCOMPtr soundInterface = + do_CreateInstance("@mozilla.org/sound;1"); + if (soundInterface) { + soundInterface->Beep(); + } } // Remove bad character from buffer, so we can continue typing from // last matched character -#ifdef DONT_ADD_CHAR_IF_NOT_FOUND // If first character is bad, flush it away anyway - if (mTypeAheadBuffer.Length == 1) +#ifdef TYPEAHEADFIND_REMOVE_ALL_BAD_KEYS + // Remove all bad characters + if (mTypeAheadBuffer.Length() >= 1 && !isBackspace) { +#else + // Remove bad *first* characters only + if (mTypeAheadBuffer.Length() == 1 && !isBackspace) { #endif - // Note the if above inside the #ifdef! + // Notice if () in #ifdef above! mTypeAheadBuffer = Substring(mTypeAheadBuffer, 0, mTypeAheadBuffer.Length() - 1); + } } return NS_OK; @@ -968,6 +977,9 @@ nsTypeAheadFind::FindItNow(PRBool aIsRepeatingSameChar, PRBool aIsLinksOnly, findBuffer = PromiseFlatString(mTypeAheadBuffer); } + if (findBuffer.IsEmpty()) + return NS_ERROR_FAILURE; + while (PR_TRUE) { // ----- Outer while loop: go through all docs ----- while (PR_TRUE) { // === Inner while loop: go through a single doc === mFind->Find(findBuffer.get(), mSearchRange, mStartPointRange,