Prevent normal handling of oninput events if the event is caused by autocomplete updating the text field value. Bug 212686.

This commit is contained in:
bryner%brianryner.com 2003-07-26 02:55:24 +00:00
Родитель d627bea1c6
Коммит 858adb56f1
2 изменённых файлов: 8 добавлений и 1 удалений

Просмотреть файл

@ -83,7 +83,8 @@ nsFormFillController::nsFormFillController() :
mMaxRows(0),
mDisableAutoComplete(PR_FALSE),
mCompleteDefaultIndex(PR_FALSE),
mForceComplete(PR_FALSE)
mForceComplete(PR_FALSE),
mSuppressOnInput(PR_FALSE)
{
mController = do_CreateInstance("@mozilla.org/autocomplete/controller;1");
@ -377,7 +378,9 @@ nsFormFillController::GetTextValue(nsAString & aTextValue)
NS_IMETHODIMP
nsFormFillController::SetTextValue(const nsAString & aTextValue)
{
mSuppressOnInput = PR_TRUE;
mFocusedInput->SetValue(aTextValue);
mSuppressOnInput = PR_FALSE;
return NS_OK;
}
@ -592,6 +595,9 @@ nsFormFillController::Select(nsIDOMEvent* aEvent)
NS_IMETHODIMP
nsFormFillController::Input(nsIDOMEvent* aEvent)
{
if (mSuppressOnInput)
return NS_OK;
return mController->HandleText();
}

Просмотреть файл

@ -120,6 +120,7 @@ protected:
PRPackedBool mDisableAutoComplete;
PRPackedBool mCompleteDefaultIndex;
PRPackedBool mForceComplete;
PRPackedBool mSuppressOnInput;
};
#endif // __nsFormFillController__