Bug 910978 part.15 Implement nsFocusEvent::AssignFocusEventData() r=smaug

This commit is contained in:
Masayuki Nakano 2013-09-03 20:45:29 +09:00
Родитель 28c40b5168
Коммит e8b636382b
3 изменённых файлов: 30 добавлений и 3 удалений

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

@ -655,9 +655,7 @@ nsDOMEvent::DuplicatePrivateData()
{
nsFocusEvent* newFocusEvent = new nsFocusEvent(false, msg);
nsFocusEvent* oldFocusEvent = static_cast<nsFocusEvent*>(mEvent);
newFocusEvent->AssignGUIEventData(*oldFocusEvent, true);
newFocusEvent->fromRaise = oldFocusEvent->fromRaise;
newFocusEvent->isRefocus = oldFocusEvent->isRefocus;
newFocusEvent->AssignFocusEventData(*oldFocusEvent, true);
newEvent = newFocusEvent;
break;
}

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

@ -1908,6 +1908,15 @@ public:
bool fromRaise;
bool isRefocus;
void AssignFocusEventData(const nsFocusEvent& aEvent, bool aCopyTargets)
{
AssignUIEventData(aEvent, aCopyTargets);
relatedTarget = aCopyTargets ? aEvent.relatedTarget : nullptr;
fromRaise = aEvent.fromRaise;
isRefocus = aEvent.isRefocus;
}
};
/**

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

@ -415,6 +415,26 @@ const kTests = [
},
todoMismatch: [],
},
{ description: "nsFocusEvent (focus)",
targetID: "input-text", eventType: "focus",
dispatchEvent: function () {
document.getElementById(this.targetID).focus();
},
canRun: function () {
return true;
},
todoMismatch: [],
},
{ description: "nsFocusEvent (blur)",
targetID: "input-text", eventType: "blur",
dispatchEvent: function () {
document.getElementById(this.targetID).blur();
},
canRun: function () {
return true;
},
todoMismatch: [],
},
];
function doTest(aTest)