Bug 1088071, part 1 - Wrap the callers of the final nsRenderingContext::DrawString method up in a new nsLayoutUtils::DrawUniDirString method. r=jfkthame

This commit is contained in:
Jonathan Watt 2014-10-24 11:00:23 +01:00
Родитель 11ce2774d2
Коммит 0e920978be
4 изменённых файлов: 24 добавлений и 5 удалений

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

@ -4649,10 +4649,19 @@ nsLayoutUtils::DrawString(const nsIFrame* aFrame,
if (NS_FAILED(rv))
{
aContext->SetTextRunRTL(false);
aContext->DrawString(aString, aLength, aPoint.x, aPoint.y);
DrawUniDirString(aString, aLength, aPoint, *aContext);
}
}
void
nsLayoutUtils::DrawUniDirString(const char16_t* aString,
uint32_t aLength,
nsPoint aPoint,
nsRenderingContext& aContext)
{
aContext.DrawString(aString, aLength, aPoint.x, aPoint.y);
}
nscoord
nsLayoutUtils::GetStringWidth(const nsIFrame* aFrame,
nsRenderingContext* aContext,

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

@ -1324,6 +1324,11 @@ public:
nsPoint aPoint,
nsStyleContext* aStyleContext = nullptr);
static void DrawUniDirString(const char16_t* aString,
uint32_t aLength,
nsPoint aPoint,
nsRenderingContext& aContext);
static nscoord GetStringWidth(const nsIFrame* aFrame,
nsRenderingContext* aContext,
const char16_t* aString,

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

@ -1123,8 +1123,11 @@ nsImageFrame::DisplayAltText(nsPresContext* aPresContext,
aRenderingContext,
aRect.x, y + maxAscent);
}
if (NS_FAILED(rv))
aRenderingContext.DrawString(str, maxFit, aRect.x, y + maxAscent);
if (NS_FAILED(rv)) {
nsLayoutUtils::DrawUniDirString(str, maxFit,
nsPoint(aRect.x, y + maxAscent),
aRenderingContext);
}
// Move to the next line
str += maxFit;

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

@ -110,8 +110,10 @@ void nsDisplayMathMLError::Paint(nsDisplayListBuilder* aBuilder,
aCtx->ThebesContext()->SetColor(NS_RGB(255,255,255));
nscoord ascent = aCtx->FontMetrics()->MaxAscent();
NS_NAMED_LITERAL_STRING(errorMsg, "invalid-markup");
aCtx->DrawString(errorMsg.get(), uint32_t(errorMsg.Length()),
pt.x, pt.y+ascent);
nsLayoutUtils::DrawUniDirString(errorMsg.get(),
uint32_t(errorMsg.Length()),
nsPoint(pt.x, pt.y + ascent),
*aCtx);
}
/* /////////////