Bug 910978 part.7 Implement nsCompositionEvent::AssignCompositionEventData() r=smaug

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

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

@ -586,8 +586,7 @@ nsDOMEvent::DuplicatePrivateData()
new nsCompositionEvent(false, msg, nullptr);
nsCompositionEvent* oldCompositionEvent =
static_cast<nsCompositionEvent*>(mEvent);
compositionEvent->AssignGUIEventData(*oldCompositionEvent, true);
compositionEvent->data = oldCompositionEvent->data;
compositionEvent->AssignCompositionEventData(*oldCompositionEvent, true);
newEvent = compositionEvent;
break;
}

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

@ -1395,6 +1395,14 @@ public:
}
nsString data;
void AssignCompositionEventData(const nsCompositionEvent& aEvent,
bool aCopyTargets)
{
AssignGUIEventData(aEvent, aCopyTargets);
data = aEvent.data;
}
};
/**

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

@ -241,6 +241,29 @@ const kTests = [
},
todoMismatch: [ ],
},
{ description: "nsCompositionEvent (compositionupdate)",
targetID: "input-text", eventType: "compositionupdate",
dispatchEvent: function () {
document.getElementById(this.targetID).value = "";
document.getElementById(this.targetID).focus();
synthesizeComposition({ type: "compositionstart" });
synthesizeComposition({ type: "compositionupdate", data: "\u30E9\u30FC\u30E1\u30F3" });
synthesizeText({ "composition":
{ "string": "\u30E9\u30FC\u30E1\u30F3",
"clauses":
[
{ "length": 0, "attr": 0 }
]
},
"caret": { "start": 4, "length": 0 }
});
synthesizeComposition({ type: "compositionend", data: "\u30E9\u30FC\u30E1\u30F3" });
},
canRun: function () {
return true;
},
todoMismatch: [ ],
},
];
function doTest(aTest)