Module: wine Branch: master Commit: feda29bb0c03f3471ba2ea089d7a1b422ca5e334 URL: http://source.winehq.org/git/wine.git/?a=commit;h=feda29bb0c03f3471ba2ea089d...
Author: Dylan Smith dylan.ah.smith@gmail.com Date: Thu Jul 10 10:17:39 2008 -0400
richedit: Fixed position of runs in some situations during wrapping.
Runs that are skipped over still need to affect the wrapping position, otherwise they won't affect further run positions.
---
dlls/riched20/wrap.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/riched20/wrap.c b/dlls/riched20/wrap.c index 34fbf09..614c6ac 100644 --- a/dlls/riched20/wrap.c +++ b/dlls/riched20/wrap.c @@ -296,7 +296,7 @@ static ME_DisplayItem *ME_WrapHandleRun(ME_WrapContext *wc, ME_DisplayItem *p)
if (run->nFlags & MERF_WHITESPACE) { p->member.run.nFlags |= MERF_SKIPPED; - /* wc->pt.x += run->nWidth; */ + wc->pt.x += run->nWidth; /* skip runs consisting of only whitespaces */ return p->next; } @@ -358,8 +358,9 @@ static ME_DisplayItem *ME_WrapHandleRun(ME_WrapContext *wc, ME_DisplayItem *p) pp = ME_SplitByBacktracking(wc, p, loc); if (pp == wc->pRowStart) { - /* we had only spaces so far, entire content can be omitted */ - wc->pt.x = 0; + /* we have a row that starts with spaces, or a single large character + * which we cannot split. */ + wc->pt.x += run->nWidth; return p->next; } if (p != pp) /* found a suitable split point */