diff --git a/mozilla/toolkit/components/autocomplete/public/nsIAutoCompleteInput.idl b/mozilla/toolkit/components/autocomplete/public/nsIAutoCompleteInput.idl index f27728fbab9..4db837efa44 100644 --- a/mozilla/toolkit/components/autocomplete/public/nsIAutoCompleteInput.idl +++ b/mozilla/toolkit/components/autocomplete/public/nsIAutoCompleteInput.idl @@ -157,3 +157,13 @@ interface nsIAutoCompleteInput : nsISupports */ boolean onTextReverted(); }; + +[scriptable, uuid(CCD37136-76E8-47a7-B46C-B8FEE8EB0536)] +interface nsIAutoCompleteInput_MOZILLA_1_8_BRANCH : nsIAutoCompleteInput +{ + /* + * This popup should consume or dispatch the rollup event. + * TRUE: should consume; FALSE: should dispatch. + */ + readonly attribute boolean consumeRollupEvent; +}; diff --git a/mozilla/toolkit/components/autocomplete/src/nsAutoCompleteController.cpp b/mozilla/toolkit/components/autocomplete/src/nsAutoCompleteController.cpp index 7edac00f304..a4580ec63a3 100644 --- a/mozilla/toolkit/components/autocomplete/src/nsAutoCompleteController.cpp +++ b/mozilla/toolkit/components/autocomplete/src/nsAutoCompleteController.cpp @@ -589,8 +589,14 @@ nsAutoCompleteController::AttachRollupListener() { nsIWidget* widget = GetPopupWidget(); NS_ENSURE_TRUE(widget, NS_ERROR_FAILURE); + NS_ASSERTION(mInput, "mInput must not be null."); + PRBool consumeRollupEvent = PR_FALSE; + nsCOMPtr input = + do_QueryInterface(mInput); + NS_ASSERTION(input, "mInput must have nsIAutoCompleteInput_MOZILLA_1_8_BRANCH interface."); + input->GetConsumeRollupEvent(&consumeRollupEvent); return widget->CaptureRollupEvents((nsIRollupListener*)this, - PR_TRUE, PR_FALSE); + PR_TRUE, consumeRollupEvent); } NS_IMETHODIMP diff --git a/mozilla/toolkit/components/satchel/src/nsFormFillController.cpp b/mozilla/toolkit/components/satchel/src/nsFormFillController.cpp index d1418819547..2dc634caecd 100644 --- a/mozilla/toolkit/components/satchel/src/nsFormFillController.cpp +++ b/mozilla/toolkit/components/satchel/src/nsFormFillController.cpp @@ -80,6 +80,7 @@ NS_INTERFACE_MAP_BEGIN(nsFormFillController) NS_INTERFACE_MAP_ENTRY(nsIFormFillController) NS_INTERFACE_MAP_ENTRY(nsIAutoCompleteInput) + NS_INTERFACE_MAP_ENTRY(nsIAutoCompleteInput_MOZILLA_1_8_BRANCH) NS_INTERFACE_MAP_ENTRY(nsIAutoCompleteSearch) NS_INTERFACE_MAP_ENTRY(nsIDOMFocusListener) NS_INTERFACE_MAP_ENTRY(nsIDOMKeyListener) @@ -482,6 +483,16 @@ nsFormFillController::OnTextReverted(PRBool *_retval) return NS_OK; } +//////////////////////////////////////////////////////////////////////// +//// nsIAutoCompleteInput_MOZILLA_1_8_BRANCH + +NS_IMETHODIMP +nsFormFillController::GetConsumeRollupEvent(PRBool *aConsumeRollupEvent) +{ + *aConsumeRollupEvent = PR_FALSE; + return NS_OK; +} + //////////////////////////////////////////////////////////////////////// //// nsIAutoCompleteSearch diff --git a/mozilla/toolkit/components/satchel/src/nsFormFillController.h b/mozilla/toolkit/components/satchel/src/nsFormFillController.h index 7538c58702d..345480050ff 100644 --- a/mozilla/toolkit/components/satchel/src/nsFormFillController.h +++ b/mozilla/toolkit/components/satchel/src/nsFormFillController.h @@ -60,7 +60,7 @@ class nsFormHistory; class nsFormFillController : public nsIFormFillController, - public nsIAutoCompleteInput, + public nsIAutoCompleteInput_MOZILLA_1_8_BRANCH, public nsIAutoCompleteSearch, public nsIDOMFocusListener, public nsIDOMKeyListener, @@ -74,6 +74,7 @@ public: NS_DECL_NSIFORMFILLCONTROLLER NS_DECL_NSIAUTOCOMPLETESEARCH NS_DECL_NSIAUTOCOMPLETEINPUT + NS_DECL_NSIAUTOCOMPLETEINPUT_MOZILLA_1_8_BRANCH NS_DECL_NSIDOMEVENTLISTENER // nsIDOMFocusListener diff --git a/mozilla/toolkit/content/widgets/autocomplete.xml b/mozilla/toolkit/content/widgets/autocomplete.xml index c77b5891d60..82bb9bd073f 100644 --- a/mozilla/toolkit/content/widgets/autocomplete.xml +++ b/mozilla/toolkit/content/widgets/autocomplete.xml @@ -74,7 +74,9 @@ - + null null false @@ -164,7 +166,10 @@ - + + +