Module: wine Branch: master Commit: d132009ae99426bcab8adea89d17ff46e60f9401 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d132009ae99426bcab8adea89d...
Author: Huw Davies huw@codeweavers.com Date: Fri Oct 7 10:49:34 2016 +0100
riched20: Maintain a ptr to the end-of-paragraph run.
Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/riched20/editstr.h | 1 + dlls/riched20/para.c | 9 +++++++++ 2 files changed, 10 insertions(+)
diff --git a/dlls/riched20/editstr.h b/dlls/riched20/editstr.h index 0e60a3d..fb88f71 100644 --- a/dlls/riched20/editstr.h +++ b/dlls/riched20/editstr.h @@ -201,6 +201,7 @@ typedef struct tagME_Paragraph POINT pt; int nHeight, nWidth; int nRows; + ME_Run *eop_run; /* ptr to the end-of-para run */ struct tagME_DisplayItem *prev_para, *next_para; } ME_Paragraph;
diff --git a/dlls/riched20/para.c b/dlls/riched20/para.c index e246e37..0174252 100644 --- a/dlls/riched20/para.c +++ b/dlls/riched20/para.c @@ -81,6 +81,8 @@ void ME_MakeFirstParagraph(ME_TextEditor *editor) run->member.run.len = eol_len; run->member.run.para = ¶->member.para;
+ para->member.para.eop_run = &run->member.run; + ME_InsertBefore(text->pLast, para); ME_InsertBefore(text->pLast, run); para->member.para.prev_para = text->pFirst; @@ -272,6 +274,10 @@ ME_DisplayItem *ME_SplitParagraph(ME_TextEditor *editor, ME_DisplayItem *run, ME_InsertBefore(run, new_para); ME_InsertBefore(new_para, end_run);
+ /* Fix up the paras' eop_run ptrs */ + new_para->member.para.eop_run = run_para->member.para.eop_run; + run_para->member.para.eop_run = &end_run->member.run; + if (!editor->bEmulateVersion10) { /* v4.1 */ if (paraFlags & (MEPF_ROWSTART|MEPF_CELL)) { @@ -429,6 +435,9 @@ ME_DisplayItem *ME_JoinParagraphs(ME_TextEditor *editor, ME_DisplayItem *tp, pTmp->member.run.para = &tp->member.para; } while(1);
+ /* Fix up the para's eop_run ptr */ + tp->member.para.eop_run = pNext->member.para.eop_run; + ME_Remove(pRun); ME_DestroyDisplayItem(pRun);