diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index f3764df8a64..e61aac41fd0 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -4463,7 +4463,7 @@ static LRESULT RichEditWndProc_common(HWND hWnd, UINT msg, WPARAM wParam, ps.rcPaint.right = editor->rcFormat.right; } - ME_PaintContent(editor, hDC, FALSE, &ps.rcPaint); + ME_PaintContent(editor, hDC, &ps.rcPaint); EndPaint(editor->hWnd, &ps); return 0; } diff --git a/dlls/riched20/editor.h b/dlls/riched20/editor.h index 8cded5110a6..7a56b1a6a0e 100644 --- a/dlls/riched20/editor.h +++ b/dlls/riched20/editor.h @@ -207,7 +207,7 @@ void ME_MarkAllForWrapping(ME_TextEditor *editor) DECLSPEC_HIDDEN; void ME_SetDefaultParaFormat(PARAFORMAT2 *pFmt) DECLSPEC_HIDDEN; /* paint.c */ -void ME_PaintContent(ME_TextEditor *editor, HDC hDC, BOOL bOnlyNew, const RECT *rcUpdate) DECLSPEC_HIDDEN; +void ME_PaintContent(ME_TextEditor *editor, HDC hDC, const RECT *rcUpdate) DECLSPEC_HIDDEN; void ME_Repaint(ME_TextEditor *editor) DECLSPEC_HIDDEN; void ME_RewrapRepaint(ME_TextEditor *editor) DECLSPEC_HIDDEN; void ME_UpdateRepaint(ME_TextEditor *editor, BOOL update_now) DECLSPEC_HIDDEN; diff --git a/dlls/riched20/paint.c b/dlls/riched20/paint.c index e1f838e88f2..18b2da4f820 100644 --- a/dlls/riched20/paint.c +++ b/dlls/riched20/paint.c @@ -25,7 +25,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(richedit); static void ME_DrawParagraph(ME_Context *c, ME_DisplayItem *paragraph); -void ME_PaintContent(ME_TextEditor *editor, HDC hDC, BOOL bOnlyNew, const RECT *rcUpdate) +void ME_PaintContent(ME_TextEditor *editor, HDC hDC, const RECT *rcUpdate) { ME_DisplayItem *item; ME_Context c; @@ -71,17 +71,14 @@ void ME_PaintContent(ME_TextEditor *editor, HDC hDC, BOOL bOnlyNew, const RECT * ys -= item->member.para.pCell->member.cell.yTextOffset; } - if (!bOnlyNew || (item->member.para.nFlags & MEPF_REPAINT)) + /* Draw the paragraph if any of the paragraph is in the update region. */ + if (ys < rcUpdate->bottom && ye > rcUpdate->top) { - /* Draw the paragraph if any of the paragraph is in the update region. */ - if (ys < rcUpdate->bottom && ye > rcUpdate->top) - { - ME_DrawParagraph(&c, item); - /* Clear the repaint flag if the whole paragraph is in the - * update region. */ - if (rcUpdate->top <= ys && rcUpdate->bottom >= ye) - item->member.para.nFlags &= ~MEPF_REPAINT; - } + ME_DrawParagraph(&c, item); + /* Clear the repaint flag if the whole paragraph is in the + * update region. */ + if (rcUpdate->top <= ys && rcUpdate->bottom >= ye) + item->member.para.nFlags &= ~MEPF_REPAINT; } item = item->member.para.next_para; } @@ -94,15 +91,6 @@ void ME_PaintContent(ME_TextEditor *editor, HDC hDC, BOOL bOnlyNew, const RECT * rc.bottom = c.rcView.bottom; rc.right = c.rcView.right; - if (bOnlyNew) - { - /* Only erase region drawn from previous call to ME_PaintContent */ - if (editor->nTotalLength < editor->nLastTotalLength) - rc.bottom = c.pt.y + editor->nLastTotalLength; - else - SetRectEmpty(&rc); - } - IntersectRect(&rc, &rc, rcUpdate); if (!IsRectEmpty(&rc)) diff --git a/dlls/riched20/wrap.c b/dlls/riched20/wrap.c index cca2cb12fbe..2d19119faeb 100644 --- a/dlls/riched20/wrap.c +++ b/dlls/riched20/wrap.c @@ -753,6 +753,7 @@ void ME_InvalidateMarkedParagraphs(ME_TextEditor *editor) + item->member.para.nHeight - ofs, c.rcView.bottom); ITextHost_TxInvalidateRect(editor->texthost, &rc, TRUE); + item->member.para.nFlags &= ~MEPF_REPAINT; } item = item->member.para.next_para; }