Bug 1305458 Part6: Move fire change event from HTMLTextAreaElement::GetEventTargetParent to PreHandleEvent. r=smaug

MozReview-Commit-ID: K0tuWlUOLw7
This commit is contained in:
Stone Shih
2016-10-21 17:33:41 +08:00
parent 2df3b633cd
commit 8a5d11ce9f
2 changed files with 14 additions and 2 deletions

View File

@@ -531,14 +531,25 @@ HTMLTextAreaElement::GetEventTargetParent(EventChainPreVisitor& aVisitor)
aVisitor.mEvent->mFlags.mNoContentDispatch = false;
}
// Fire onchange (if necessary), before we do the blur, bug 370521.
if (aVisitor.mEvent->mMessage == eBlur) {
FireChangeEventIfNeeded();
// Set mWantsPreHandleEvent and fire change event in PreHandleEvent to
// prevent it breaks event target chain creation.
aVisitor.mWantsPreHandleEvent = true;
}
return nsGenericHTMLFormElementWithState::GetEventTargetParent(aVisitor);
}
nsresult
HTMLTextAreaElement::PreHandleEvent(EventChainVisitor& aVisitor)
{
if (aVisitor.mEvent->mMessage == eBlur) {
// Fire onchange (if necessary), before we do the blur, bug 370521.
FireChangeEventIfNeeded();
}
return nsGenericHTMLFormElementWithState::PreHandleEvent(aVisitor);
}
void
HTMLTextAreaElement::FireChangeEventIfNeeded()
{