Not part of the build (barely). Don't skip updating per-char arrays for characters that are cluster continuations (in small-caps code).

This commit is contained in:
2007-06-13 11:28:38 -07:00
parent 7ee766804c
commit 419dab0ba8

View File

@@ -354,7 +354,7 @@ nsFontVariantTextRunFactory::RebuildTextRun(nsTransformedTextRun* aTextRun)
aTextRun->ResetGlyphRuns();
PRUint32 runStart = 0;
PRPackedBool runIsLowercase = PR_FALSE;
PRBool runIsLowercase = PR_FALSE;
nsAutoTArray<nsStyleContext*,50> styleArray;
nsAutoTArray<PRPackedBool,50> canBreakBeforeArray;
nsAutoTArray<PRUint32,10> lineBreakBeforeArray;
@@ -372,16 +372,17 @@ nsFontVariantTextRunFactory::RebuildTextRun(nsTransformedTextRun* aTextRun)
if (i < length) {
// Characters that aren't the start of a cluster are ignored here. They
// get added to whatever lowercase/non-lowercase run we're in.
if (!inner->IsClusterStart(i))
continue;
if (styles[i]->GetStyleFont()->mFont.variant == NS_STYLE_FONT_VARIANT_SMALL_CAPS) {
PRUnichar ch = str[i];
PRUnichar ch2;
converter->ToUpper(ch, &ch2);
isLowercase = ch != ch2 || ch == SZLIG;
if (!inner->IsClusterStart(i)) {
isLowercase = runIsLowercase;
} else {
// Don't transform the character! I.e., pretend that it's not lowercase
if (styles[i]->GetStyleFont()->mFont.variant == NS_STYLE_FONT_VARIANT_SMALL_CAPS) {
PRUnichar ch = str[i];
PRUnichar ch2;
converter->ToUpper(ch, &ch2);
isLowercase = ch != ch2 || ch == SZLIG;
} else {
// Don't transform the character! I.e., pretend that it's not lowercase
}
}
}