[PATCH 4/5 v2] riched20: Support external HDC in ME_WrapMarkedParagraphs().
Jactry Zeng
jzeng at codeweavers.com
Tue May 22 03:32:31 CDT 2018
Superseded patch 146218.
Signed-off-by: Jactry Zeng <jzeng at codeweavers.com>
---
dlls/riched20/editor.c | 12 ++++++------
dlls/riched20/editor.h | 2 +-
dlls/riched20/paint.c | 10 +++++-----
dlls/riched20/table.c | 4 ++--
dlls/riched20/wrap.c | 6 ++++--
5 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c
index 820b0380c7..0501c606b1 100644
--- a/dlls/riched20/editor.c
+++ b/dlls/riched20/editor.c
@@ -3494,7 +3494,7 @@ static LRESULT ME_WmCreate(ME_TextEditor *editor, LPARAM lParam, BOOL unicode)
}
ME_CommitUndo(editor);
- ME_WrapMarkedParagraphs(editor);
+ ME_WrapMarkedParagraphs(editor, NULL);
ME_MoveCaret(editor);
return 0;
}
@@ -3645,7 +3645,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
cf.yHeight = size * 20; /* convert twips to points */
ME_SetSelectionCharFormat(editor, &cf);
ME_CommitUndo(editor);
- ME_WrapMarkedParagraphs(editor);
+ ME_WrapMarkedParagraphs(editor, NULL);
ME_UpdateScrollBar(editor);
ME_Repaint(editor);
@@ -3934,7 +3934,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
ME_CommitUndo(editor);
if (bRepaint)
{
- ME_WrapMarkedParagraphs(editor);
+ ME_WrapMarkedParagraphs(editor, NULL);
ME_UpdateScrollBar(editor);
ME_Repaint(editor);
}
@@ -3959,7 +3959,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
case EM_SETPARAFORMAT:
{
BOOL result = ME_SetSelectionParaFormat(editor, (PARAFORMAT2 *)lParam);
- ME_WrapMarkedParagraphs(editor);
+ ME_WrapMarkedParagraphs(editor, NULL);
ME_UpdateScrollBar(editor);
ME_Repaint(editor);
ME_CommitUndo(editor);
@@ -4054,7 +4054,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
ME_CommitUndo(editor);
ME_MarkAllForWrapping(editor);
- ME_WrapMarkedParagraphs(editor);
+ ME_WrapMarkedParagraphs(editor, NULL);
ME_UpdateScrollBar(editor);
if (bRepaint)
ME_Repaint(editor);
@@ -4714,7 +4714,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
editor->bDefaultFormatRect = TRUE;
}
ME_MarkAllForWrapping(editor);
- ME_WrapMarkedParagraphs(editor);
+ ME_WrapMarkedParagraphs(editor, NULL);
ME_UpdateScrollBar(editor);
if (msg != EM_SETRECTNP)
ME_Repaint(editor);
diff --git a/dlls/riched20/editor.h b/dlls/riched20/editor.h
index 0f0e56ecd1..425a34f0c2 100644
--- a/dlls/riched20/editor.h
+++ b/dlls/riched20/editor.h
@@ -182,7 +182,7 @@ void ME_InitContext(ME_Context *c, ME_TextEditor *editor, HDC hDC) DECLSPEC_HIDD
void ME_DestroyContext(ME_Context *c) DECLSPEC_HIDDEN;
/* wrap.c */
-BOOL ME_WrapMarkedParagraphs(ME_TextEditor *editor) DECLSPEC_HIDDEN;
+BOOL ME_WrapMarkedParagraphs(ME_TextEditor *editor, HDC hdc) DECLSPEC_HIDDEN;
void ME_InvalidateParagraphRange(ME_TextEditor *editor, ME_DisplayItem *start_para, ME_DisplayItem *last_para) DECLSPEC_HIDDEN;
void ME_SendRequestResize(ME_TextEditor *editor, BOOL force) DECLSPEC_HIDDEN;
diff --git a/dlls/riched20/paint.c b/dlls/riched20/paint.c
index fcc4e105a3..f2429081fc 100644
--- a/dlls/riched20/paint.c
+++ b/dlls/riched20/paint.c
@@ -105,7 +105,7 @@ void ME_PaintContent(ME_TextEditor *editor, HDC hDC, const RECT *rcUpdate)
void ME_Repaint(ME_TextEditor *editor)
{
- if (ME_WrapMarkedParagraphs(editor))
+ if (ME_WrapMarkedParagraphs(editor, NULL))
{
ME_UpdateScrollBar(editor);
FIXME("ME_Repaint had to call ME_WrapMarkedParagraphs\n");
@@ -118,7 +118,7 @@ void ME_UpdateRepaint(ME_TextEditor *editor, BOOL update_now)
/* Should be called whenever the contents of the control have changed */
BOOL wrappedParagraphs;
- wrappedParagraphs = ME_WrapMarkedParagraphs(editor);
+ wrappedParagraphs = ME_WrapMarkedParagraphs(editor, NULL);
if (wrappedParagraphs)
ME_UpdateScrollBar(editor);
@@ -145,7 +145,7 @@ ME_RewrapRepaint(ME_TextEditor *editor)
* looks, but not content. Like resizing. */
ME_MarkAllForWrapping(editor);
- ME_WrapMarkedParagraphs(editor);
+ ME_WrapMarkedParagraphs(editor, NULL);
ME_UpdateScrollBar(editor);
ME_Repaint(editor);
}
@@ -1163,7 +1163,7 @@ void ME_UpdateScrollBar(ME_TextEditor *editor)
SCROLLINFO si;
BOOL bScrollBarWasVisible, bScrollBarWillBeVisible;
- if (ME_WrapMarkedParagraphs(editor))
+ if (ME_WrapMarkedParagraphs(editor, NULL))
FIXME("ME_UpdateScrollBar had to call ME_WrapMarkedParagraphs\n");
si.cbSize = sizeof(si);
@@ -1336,7 +1336,7 @@ ME_InvalidateSelection(ME_TextEditor *editor)
there's no (inverted) area to be repainted, neither old nor new */
if (nStart == nEnd && editor->nLastSelStart == editor->nLastSelEnd)
return;
- ME_WrapMarkedParagraphs(editor);
+ ME_WrapMarkedParagraphs(editor, NULL);
ME_GetSelectionParas(editor, &sel_start, &sel_end);
assert(sel_start->type == diParagraph);
assert(sel_end->type == diParagraph);
diff --git a/dlls/riched20/table.c b/dlls/riched20/table.c
index 4cd77eb399..5457935dfa 100644
--- a/dlls/riched20/table.c
+++ b/dlls/riched20/table.c
@@ -499,7 +499,7 @@ static void ME_SelectOrInsertNextCell(ME_TextEditor *editor,
editor->pCursors[0].pRun = ME_FindItemFwd(para, diRun);
editor->pCursors[0].nOffset = 0;
editor->pCursors[1] = editor->pCursors[0];
- ME_WrapMarkedParagraphs(editor);
+ ME_WrapMarkedParagraphs(editor, NULL);
return;
}
}
@@ -544,7 +544,7 @@ static void ME_SelectOrInsertNextCell(ME_TextEditor *editor,
editor->pCursors[0].pRun = ME_FindItemFwd(para, diRun);
editor->pCursors[0].nOffset = 0;
editor->pCursors[1] = editor->pCursors[0];
- ME_WrapMarkedParagraphs(editor);
+ ME_WrapMarkedParagraphs(editor, NULL);
return;
}
}
diff --git a/dlls/riched20/wrap.c b/dlls/riched20/wrap.c
index e3a70f07d1..38ba8acc9c 100644
--- a/dlls/riched20/wrap.c
+++ b/dlls/riched20/wrap.c
@@ -980,14 +980,16 @@ static void ME_MarkRepaintEnd(ME_DisplayItem *para,
*repaint_end = para;
}
-BOOL ME_WrapMarkedParagraphs(ME_TextEditor *editor)
+BOOL ME_WrapMarkedParagraphs(ME_TextEditor *editor, HDC hdc)
{
ME_DisplayItem *item;
ME_Context c;
int totalWidth = 0;
ME_DisplayItem *repaint_start = NULL, *repaint_end = NULL;
- ME_InitContext(&c, editor, ITextHost_TxGetDC(editor->texthost));
+ if (!hdc)
+ hdc = ITextHost_TxGetDC(editor->texthost);
+ ME_InitContext(&c, editor, hdc);
c.pt.x = 0;
item = editor->pBuffer->pFirst->next;
while(item != editor->pBuffer->pLast) {
--
2.15.1 (Apple Git-101)
More information about the wine-devel
mailing list