mirror of
https://github.com/roytam1/UXP.git
synced 2026-05-26 23:18:26 +00: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:
@@ -506,7 +506,7 @@ HTMLTextAreaElement::IsDisabledForEvents(EventMessage aMessage)
|
||||
}
|
||||
|
||||
nsresult
|
||||
HTMLTextAreaElement::PreHandleEvent(EventChainPreVisitor& aVisitor)
|
||||
HTMLTextAreaElement::GetEventTargetParent(EventChainPreVisitor& aVisitor)
|
||||
{
|
||||
aVisitor.mCanHandle = false;
|
||||
if (IsDisabledForEvents(aVisitor.mEvent->mMessage)) {
|
||||
@@ -534,11 +534,22 @@ HTMLTextAreaElement::PreHandleEvent(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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user