richedit: Handle overflow of only spaces on first line of paragraph.

The uncommon case that this patch handles is enough whitespace being
on the first line of a paragraph to cause it to wrap.  In this case the
first non-space character will be wrapped onto the next line.
oldstable
Dylan Smith 2008-07-10 10:17:43 -04:00 committed by Alexandre Julliard
parent feda29bb0c
commit db3991257f
1 changed files with 13 additions and 2 deletions

View File

@ -358,8 +358,19 @@ static ME_DisplayItem *ME_WrapHandleRun(ME_WrapContext *wc, ME_DisplayItem *p)
pp = ME_SplitByBacktracking(wc, p, loc);
if (pp == wc->pRowStart)
{
/* we have a row that starts with spaces, or a single large character
* which we cannot split. */
if (run->nFlags & MERF_STARTWHITE)
{
/* we had only spaces so far, so we must be on the first line of the
* paragraph, since no other lines of the paragraph start with spaces. */
assert(!wc->nRow);
/* The lines will only contain spaces, and the rest of the run will
* overflow onto the next line. */
wc->bOverflown = TRUE;
return p;
}
/* Couldn't split the first run, possible because we have a large font
* with a single character that caused an overflow.
*/
wc->pt.x += run->nWidth;
return p->next;
}