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:
parent
e72a37e960
commit
d43cddcc83
|
@ -4332,6 +4332,18 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
|
|||
{
|
||||
mask |= 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 */
|
||||
editor->mode = (editor->mode & ~mask) | changes;
|
||||
|
|
Loading…
Reference in New Issue