mjudge checkin in from ftangs machine. fixing japanese lockup. this will not fix the strange loss of the commit event to the ESM however. that was making thisproblem obvious.

This commit is contained in:
ftang@netscape.com
2000-04-10 21:02:25 +00:00
parent 75e320d3b2
commit d30c9a4408
2 changed files with 192 additions and 222 deletions

View File

@@ -852,6 +852,12 @@ DrawSelectionIterator::DrawSelectionIterator(const SelectionDetails *aSelDetails
}
details= details->mNext;
}
if (!mInit && mTypes) //we have details but none that we care about.
{
delete mTypes;
mTypes = nsnull;
mDone = PR_TRUE;//we are finished
}
}
else if (details->mStart == details->mEnd)//no collapsed selections here!
{
@@ -897,7 +903,10 @@ DrawSelectionIterator::FillCurrentData()
{
mCurrentIdx+=mCurrentLength;//advance to this chunk
if (mCurrentIdx >= mLength)
{
mDone = PR_TRUE;
return;
}
uint8 typevalue = mTypes[mCurrentIdx];
while (typevalue == mTypes[mCurrentIdx+mCurrentLength] && (mCurrentIdx+mCurrentLength) <mLength)
{
@@ -1740,10 +1749,9 @@ nsTextFrame::PaintUnicodeText(nsIPresContext* aPresContext,
sdptr = sdptr->mNext;
}
//while we have substrings...
if (details)
{
PRBool drawn = PR_FALSE;
DrawSelectionIterator iter(details,text,(PRUint32)textLength,aTextStyle);
if (iter.First())
if (!iter.IsDone() && iter.First())
{
nscoord currentX = dx;
nscoord newWidth;//temp
@@ -1781,12 +1789,6 @@ nsTextFrame::PaintUnicodeText(nsIPresContext* aPresContext,
aRenderingContext.SetColor(aTextStyle.mColor->mColor);
aRenderingContext.DrawString(text, PRUint32(textLength), dx, dy);
}
}
else
{
aRenderingContext.SetColor(aTextStyle.mColor->mColor);
aRenderingContext.DrawString(text, PRUint32(textLength), dx, dy);
}
PaintTextDecorations(aRenderingContext, aStyleContext,
aTextStyle, dx, dy, width, text, details,0,(PRUint32)textLength);
sdptr = details;
@@ -1801,7 +1803,6 @@ nsTextFrame::PaintUnicodeText(nsIPresContext* aPresContext,
}
}
//measure Spaced Textvoid
nsresult
nsTextFrame::GetPositionSlowly(nsIPresContext* aPresContext,
@@ -2202,10 +2203,9 @@ nsTextFrame::PaintTextSlowly(nsIPresContext* aPresContext,
sdptr->mEnd = ip[sdptr->mEnd] - mContentOffset;
sdptr = sdptr->mNext;
}
if (details)
{
DrawSelectionIterator iter(details,text,(PRUint32)textLength,aTextStyle);
if (iter.First())
if (!iter.IsDone() && iter.First())
{
nscoord currentX = dx;
nscoord newWidth;//temp
@@ -2244,13 +2244,6 @@ nsTextFrame::PaintTextSlowly(nsIPresContext* aPresContext,
RenderString(aRenderingContext,aStyleContext, aTextStyle, text,
PRUint32(textLength), dx, dy, width, details);
}
}
else
{
aRenderingContext.SetColor(aTextStyle.mColor->mColor);
RenderString(aRenderingContext,aStyleContext, aTextStyle, text,
PRUint32(textLength), dx, dy, width, details);
}
sdptr = details;
if (details){
while ((sdptr = details->mNext) != nsnull) {
@@ -2354,10 +2347,8 @@ nsTextFrame::PaintAsciiText(nsIPresContext* aPresContext,
sdptr->mEnd = ip[sdptr->mEnd] - mContentOffset;
sdptr = sdptr->mNext;
}
if (details)
{
DrawSelectionIterator iter(details,(PRUnichar *)text,(PRUint32)textLength,aTextStyle);//ITS OK TO CAST HERE THE RESULT WE USE WILLNOT DO BAD CONVERSION
if (iter.First())
if (!iter.IsDone() && iter.First())
{
nscoord currentX = dx;
nscoord newWidth;//temp
@@ -2394,12 +2385,6 @@ nsTextFrame::PaintAsciiText(nsIPresContext* aPresContext,
aRenderingContext.SetColor(aTextStyle.mColor->mColor);
aRenderingContext.DrawString(text, PRUint32(textLength), dx, dy);
}
}
else
{
aRenderingContext.SetColor(aTextStyle.mColor->mColor);
aRenderingContext.DrawString(text, PRUint32(textLength), dx, dy);
}
PaintTextDecorations(aRenderingContext, aStyleContext,
aTextStyle, dx, dy, width,
unicodePaintBuffer.mBuffer,

View File

@@ -852,6 +852,12 @@ DrawSelectionIterator::DrawSelectionIterator(const SelectionDetails *aSelDetails
}
details= details->mNext;
}
if (!mInit && mTypes) //we have details but none that we care about.
{
delete mTypes;
mTypes = nsnull;
mDone = PR_TRUE;//we are finished
}
}
else if (details->mStart == details->mEnd)//no collapsed selections here!
{
@@ -897,7 +903,10 @@ DrawSelectionIterator::FillCurrentData()
{
mCurrentIdx+=mCurrentLength;//advance to this chunk
if (mCurrentIdx >= mLength)
{
mDone = PR_TRUE;
return;
}
uint8 typevalue = mTypes[mCurrentIdx];
while (typevalue == mTypes[mCurrentIdx+mCurrentLength] && (mCurrentIdx+mCurrentLength) <mLength)
{
@@ -1740,10 +1749,9 @@ nsTextFrame::PaintUnicodeText(nsIPresContext* aPresContext,
sdptr = sdptr->mNext;
}
//while we have substrings...
if (details)
{
PRBool drawn = PR_FALSE;
DrawSelectionIterator iter(details,text,(PRUint32)textLength,aTextStyle);
if (iter.First())
if (!iter.IsDone() && iter.First())
{
nscoord currentX = dx;
nscoord newWidth;//temp
@@ -1781,12 +1789,6 @@ nsTextFrame::PaintUnicodeText(nsIPresContext* aPresContext,
aRenderingContext.SetColor(aTextStyle.mColor->mColor);
aRenderingContext.DrawString(text, PRUint32(textLength), dx, dy);
}
}
else
{
aRenderingContext.SetColor(aTextStyle.mColor->mColor);
aRenderingContext.DrawString(text, PRUint32(textLength), dx, dy);
}
PaintTextDecorations(aRenderingContext, aStyleContext,
aTextStyle, dx, dy, width, text, details,0,(PRUint32)textLength);
sdptr = details;
@@ -1801,7 +1803,6 @@ nsTextFrame::PaintUnicodeText(nsIPresContext* aPresContext,
}
}
//measure Spaced Textvoid
nsresult
nsTextFrame::GetPositionSlowly(nsIPresContext* aPresContext,
@@ -2202,10 +2203,9 @@ nsTextFrame::PaintTextSlowly(nsIPresContext* aPresContext,
sdptr->mEnd = ip[sdptr->mEnd] - mContentOffset;
sdptr = sdptr->mNext;
}
if (details)
{
DrawSelectionIterator iter(details,text,(PRUint32)textLength,aTextStyle);
if (iter.First())
if (!iter.IsDone() && iter.First())
{
nscoord currentX = dx;
nscoord newWidth;//temp
@@ -2244,13 +2244,6 @@ nsTextFrame::PaintTextSlowly(nsIPresContext* aPresContext,
RenderString(aRenderingContext,aStyleContext, aTextStyle, text,
PRUint32(textLength), dx, dy, width, details);
}
}
else
{
aRenderingContext.SetColor(aTextStyle.mColor->mColor);
RenderString(aRenderingContext,aStyleContext, aTextStyle, text,
PRUint32(textLength), dx, dy, width, details);
}
sdptr = details;
if (details){
while ((sdptr = details->mNext) != nsnull) {
@@ -2354,10 +2347,8 @@ nsTextFrame::PaintAsciiText(nsIPresContext* aPresContext,
sdptr->mEnd = ip[sdptr->mEnd] - mContentOffset;
sdptr = sdptr->mNext;
}
if (details)
{
DrawSelectionIterator iter(details,(PRUnichar *)text,(PRUint32)textLength,aTextStyle);//ITS OK TO CAST HERE THE RESULT WE USE WILLNOT DO BAD CONVERSION
if (iter.First())
if (!iter.IsDone() && iter.First())
{
nscoord currentX = dx;
nscoord newWidth;//temp
@@ -2394,12 +2385,6 @@ nsTextFrame::PaintAsciiText(nsIPresContext* aPresContext,
aRenderingContext.SetColor(aTextStyle.mColor->mColor);
aRenderingContext.DrawString(text, PRUint32(textLength), dx, dy);
}
}
else
{
aRenderingContext.SetColor(aTextStyle.mColor->mColor);
aRenderingContext.DrawString(text, PRUint32(textLength), dx, dy);
}
PaintTextDecorations(aRenderingContext, aStyleContext,
aTextStyle, dx, dy, width,
unicodePaintBuffer.mBuffer,