mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-05 07:18:39 +09:00
Bug 1305458 - Changing -moz-appearence on hover breaks change event
* Rename nsIDOMEventTarget::PreHandleEvent to nsIDOMEventTarget::GetEventTargetParent * Add nsIDOMEventTarget::PreHandleEvent * Add EventTargetChainItem::GetFirstEventTarget * Call EventTargetChainItem::PreHandleEvent even it sets mCanHandle=false * Move form control frame focus/blur from nsGenericHTMLFormElement::GetEventTargetParent to PreHandleEvent * Move fire change event from HTMLTextAreaElement::GetEventTargetParent to PreHandleEvent * Refine nsXULElement::GetEventTargetParent * Move dispatch XUL command from nsXULElement::GetEventTargetParent to PreHandleEvent * Move fire events and set value from HTMLInputElement::GetEventTargetParent to PreHandleEvent * Add test case * Let HTMLInputElement delegate event handling to it's parent class * Refine EventTargetChain flags to reduce overheads * Refine event target chain creation * Refine assertion in EventTargetChainItem::Create Tag #1375
This commit is contained in:
parent
20b2c26451
commit
cb2b45e472
70 changed files with 547 additions and 258 deletions
|
|
@ -607,16 +607,16 @@ nsGenericHTMLElement::CheckHandleEventForAnchorsPreconditions(
|
|||
}
|
||||
|
||||
nsresult
|
||||
nsGenericHTMLElement::PreHandleEventForAnchors(EventChainPreVisitor& aVisitor)
|
||||
nsGenericHTMLElement::GetEventTargetParentForAnchors(EventChainPreVisitor& aVisitor)
|
||||
{
|
||||
nsresult rv = nsGenericHTMLElementBase::PreHandleEvent(aVisitor);
|
||||
nsresult rv = nsGenericHTMLElementBase::GetEventTargetParent(aVisitor);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
if (!CheckHandleEventForAnchorsPreconditions(aVisitor)) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return PreHandleEventForLinks(aVisitor);
|
||||
return GetEventTargetParentForLinks(aVisitor);
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
|
@ -2081,7 +2081,19 @@ nsGenericHTMLFormElement::AfterSetAttr(int32_t aNameSpaceID, nsIAtom* aName,
|
|||
}
|
||||
|
||||
nsresult
|
||||
nsGenericHTMLFormElement::PreHandleEvent(EventChainPreVisitor& aVisitor)
|
||||
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) {
|
||||
|
|
@ -2105,7 +2117,6 @@ nsGenericHTMLFormElement::PreHandleEvent(EventChainPreVisitor& aVisitor)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return nsGenericHTMLElement::PreHandleEvent(aVisitor);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue