diff --git a/toolkit/content/tests/chrome/test_autocomplete4.xul b/toolkit/content/tests/chrome/test_autocomplete4.xul index cbd2adf7cab4..db520331807b 100644 --- a/toolkit/content/tests/chrome/test_autocomplete4.xul +++ b/toolkit/content/tests/chrome/test_autocomplete4.xul @@ -13,6 +13,7 @@ @@ -143,6 +144,13 @@ const tests = [ result: "Result", start: 6, end: 6 }, + { desc: "TAB key should confirm suggestion when forcecomplete is set", + key: "VK_TAB", + removeSelection: false, + forceComplete: true, + result: "Result", + start: 6, end: 6 + }, ]; function nextTest() { @@ -181,6 +189,8 @@ function searchComplete() { is(autocomplete.value, "result", "Test '" + currentTest.desc + "': autocomplete.value should equal 'result'"); + autocomplete.setAttribute("forcecomplete", currentTest.forceComplete ? true : false); + if (autocomplete.selectionStart == 2) { // Finished inserting "re" string. if (currentTest.removeSelection) { // remove current selection diff --git a/toolkit/content/widgets/autocomplete.xml b/toolkit/content/widgets/autocomplete.xml index d12c55b92487..c88b6d30a802 100644 --- a/toolkit/content/widgets/autocomplete.xml +++ b/toolkit/content/widgets/autocomplete.xml @@ -464,6 +464,8 @@ cancel = this.mController.handleKeyNavigation(aEvent.shiftKey ? KeyEvent.DOM_VK_UP : KeyEvent.DOM_VK_DOWN); + else if (this.forceComplete && this.mController.matchCount >= 1) + this.mController.handleTab(); break; case KeyEvent.DOM_VK_UP: case KeyEvent.DOM_VK_DOWN: