richedit: Clear non-default style when changing to plain text mode.

Although the text must be empty for the mode to change to plain text
mode, there still may be a non-default style for the temporary insert
style and style for the end of text run.
This commit is contained in:
Dylan Smith 2011-01-12 02:23:40 -05:00 committed by Alexandre Julliard
parent e72a37e960
commit d43cddcc83
1 changed files with 12 additions and 0 deletions

View File

@ -4332,6 +4332,18 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
{ {
mask |= TM_RICHTEXT | TM_PLAINTEXT; mask |= TM_RICHTEXT | TM_PLAINTEXT;
changes |= wParam & (TM_RICHTEXT | TM_PLAINTEXT); changes |= wParam & (TM_RICHTEXT | TM_PLAINTEXT);
if (wParam & TM_PLAINTEXT) {
/* Clear selection since it should be possible to select the
* end of text run for rich text */
ME_InvalidateSelection(editor);
ME_SetCursorToStart(editor, &editor->pCursors[0]);
editor->pCursors[1] = editor->pCursors[0];
/* plain text can only have the default style. */
ME_ClearTempStyle(editor);
ME_AddRefStyle(editor->pBuffer->pDefaultStyle);
ME_ReleaseStyle(editor->pCursors[0].pRun->member.run.style);
editor->pCursors[0].pRun->member.run.style = editor->pBuffer->pDefaultStyle;
}
} }
/* FIXME: Currently no support for undo level and code page options */ /* FIXME: Currently no support for undo level and code page options */
editor->mode = (editor->mode & ~mask) | changes; editor->mode = (editor->mode & ~mask) | changes;