From cd9ad19a323fcd919fcb1bc4b335344328ced720 Mon Sep 17 00:00:00 2001 From: "masayuki%d-toybox.com" Date: Wed, 31 May 2006 23:29:19 +0000 Subject: [PATCH] Bug 339661 Location bar dropdown does not disappear on second click r+branch181=mconnor git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_8_BRANCH@198780 18797224-902f-48f8-a5cc-f745e15eee43 --- .../autocomplete/public/nsIAutoCompleteInput.idl | 10 ++++++++++ .../autocomplete/src/nsAutoCompleteController.cpp | 8 +++++++- .../components/satchel/src/nsFormFillController.cpp | 11 +++++++++++ .../components/satchel/src/nsFormFillController.h | 3 ++- mozilla/toolkit/content/widgets/autocomplete.xml | 9 +++++++-- 5 files changed, 37 insertions(+), 4 deletions(-) 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 @@ - + + +