diff --git a/dlls/riched20/wrap.c b/dlls/riched20/wrap.c index 39dd248..087c263 100644 --- a/dlls/riched20/wrap.c +++ b/dlls/riched20/wrap.c @@ -364,8 +364,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; }