Bug 974318 part.9 Use WidgetTextEvent::mRanges on CompositionStringSynthesizer r=smaug

This commit is contained in:
Masayuki Nakano 2014-03-04 22:48:28 +09:00
Родитель 3a0ba16d1a
Коммит 991dd217bc
2 изменённых файлов: 18 добавлений и 4 удалений

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

@ -138,8 +138,9 @@ CompositionStringSynthesizer::DispatchEvent(bool* aDefaultPrevented)
WidgetTextEvent textEvent(true, NS_TEXT_TEXT, widget);
textEvent.time = PR_IntervalNow();
textEvent.theText = mString;
textEvent.rangeCount = mClauses->Length();
textEvent.rangeArray = mClauses->Elements();
if (!mClauses->IsEmpty()) {
textEvent.mRanges = mClauses;
}
// XXX How should we set false for this on b2g?
textEvent.mFlags.mIsSynthesizedForTests = true;

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

@ -946,8 +946,21 @@ function synthesizeText(aEvent, aWindow)
compositionString.setString(aEvent.composition.string);
if (aEvent.composition.clauses[0].length) {
for (var i = 0; i < aEvent.composition.clauses.length; i++) {
compositionString.appendClause(aEvent.composition.clauses[i].length,
aEvent.composition.clauses[i].attr);
switch (aEvent.composition.clauses[i].attr) {
case compositionString.ATTR_RAWINPUT:
case compositionString.ATTR_SELECTEDRAWTEXT:
case compositionString.ATTR_CONVERTEDTEXT:
case compositionString.ATTR_SELECTEDCONVERTEDTEXT:
compositionString.appendClause(aEvent.composition.clauses[i].length,
aEvent.composition.clauses[i].attr);
break;
case 0:
// Ignore dummy clause for the argument.
break;
default:
throw new Error("invalid clause attribute specified");
break;
}
}
}