Bug 1305458 Part5: Move form control frame focus/blur from nsGenericHTMLFormElement::GetEventTargetParent to PreHandleEvent. r=smaug

MozReview-Commit-ID: H8Zn5OdZpyt
This commit is contained in:
Stone Shih
2016-10-21 16:56:58 +08:00
parent fd50fbdf8e
commit 2df3b633cd
2 changed files with 15 additions and 3 deletions

View File

@@ -2042,6 +2042,18 @@ nsGenericHTMLFormElement::AfterSetAttr(int32_t aNameSpaceID, nsIAtom* aName,
nsresult
nsGenericHTMLFormElement::GetEventTargetParent(EventChainPreVisitor& aVisitor)
{
if (aVisitor.mEvent->IsTrusted() && (aVisitor.mEvent->mMessage == eFocus ||
aVisitor.mEvent->mMessage == eBlur)) {
// We have to handle focus/blur event to change focus states in
// PreHandleEvent to prevent it breaks event target chain creation.
aVisitor.mWantsPreHandleEvent = true;
}
return nsGenericHTMLElement::GetEventTargetParent(aVisitor);
}
nsresult
nsGenericHTMLFormElement::PreHandleEvent(EventChainVisitor& aVisitor)
{
if (aVisitor.mEvent->IsTrusted()) {
switch (aVisitor.mEvent->mMessage) {
@@ -2065,8 +2077,7 @@ nsGenericHTMLFormElement::GetEventTargetParent(EventChainPreVisitor& aVisitor)
break;
}
}
return nsGenericHTMLElement::GetEventTargetParent(aVisitor);
return nsGenericHTMLElement::PreHandleEvent(aVisitor);
}
/* virtual */