From 73e0c5ea8b6697b6c8955c7b73902099f267b841 Mon Sep 17 00:00:00 2001 From: Dylan Smith Date: Tue, 24 Feb 2009 02:56:18 -0500 Subject: [PATCH] richedit: Never wrap for single line controls. I tested without the ES_MULTILINE style, and found that wrapping doesn't occur where it normally would. --- dlls/riched20/editor.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index 4bfc9c2209a..dc03d426209 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -2636,7 +2636,6 @@ ME_TextEditor *ME_MakeEditor(ITextHost *texthost, BOOL bEmulateVersion10) ed->nLastSelStart = ed->nLastSelEnd = 0; ed->pLastSelStartPara = ed->pLastSelEndPara = ME_FindItemFwd(ed->pBuffer->pFirst, diParagraph); ed->nAvailWidth = 0; /* wrap to client area */ - ed->bWordWrap = (props & TXTBIT_WORDWRAP) != 0; ed->bHideSelection = FALSE; ed->pfnWordBreak = NULL; ed->lpOleCallback = NULL; @@ -2665,8 +2664,12 @@ ME_TextEditor *ME_MakeEditor(ITextHost *texthost, BOOL bEmulateVersion10) if (props & TXTBIT_AUTOWORDSEL) ed->styleFlags |= ECO_AUTOWORDSELECTION; - if (props & TXTBIT_MULTILINE) + if (props & TXTBIT_MULTILINE) { ed->styleFlags |= ES_MULTILINE; + ed->bWordWrap = (props & TXTBIT_WORDWRAP) != 0; + } else { + ed->bWordWrap = FALSE; + } if (props & TXTBIT_READONLY) ed->styleFlags |= ES_READONLY; if (!(props & TXTBIT_HIDESELECTION)) @@ -4296,7 +4299,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam, case EM_SETTARGETDEVICE: if (wParam == 0) { - BOOL new = (lParam == 0); + BOOL new = (lParam == 0 && (editor->styleFlags & ES_MULTILINE)); if (editor->nAvailWidth || editor->bWordWrap != new) { editor->bWordWrap = new; @@ -4305,7 +4308,8 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam, } } else { int width = max(0, lParam); - if (!editor->bWordWrap || editor->nAvailWidth != width) + if ((editor->styleFlags & ES_MULTILINE) && + (!editor->bWordWrap || editor->nAvailWidth != width)) { editor->nAvailWidth = width; editor->bWordWrap = TRUE;