Commit f47aab61 authored by Huw Davies's avatar Huw Davies Committed by Alexandre Julliard

riched20: Release the font cache when changing the default style.

parent bb165d22
...@@ -763,25 +763,6 @@ void ME_SetCharFormat(ME_TextEditor *editor, ME_Cursor *start, ME_Cursor *end, C ...@@ -763,25 +763,6 @@ void ME_SetCharFormat(ME_TextEditor *editor, ME_Cursor *start, ME_Cursor *end, C
} }
} }
/******************************************************************************
* ME_SetDefaultCharFormat
*
* Applies a style change to the default character style.
*/
void ME_SetDefaultCharFormat(ME_TextEditor *editor, CHARFORMAT2W *mod)
{
ME_Style *style;
assert(mod->cbSize == sizeof(CHARFORMAT2W));
style = ME_ApplyStyle(editor->pBuffer->pDefaultStyle, mod);
editor->pBuffer->pDefaultStyle->fmt = style->fmt;
editor->pBuffer->pDefaultStyle->tm = style->tm;
ScriptFreeCache( &editor->pBuffer->pDefaultStyle->script_cache );
ME_ReleaseStyle(style);
ME_MarkAllForWrapping(editor);
/* pcf = editor->pBuffer->pDefaultStyle->fmt; */
}
static void ME_GetRunCharFormat(ME_TextEditor *editor, ME_DisplayItem *run, CHARFORMAT2W *pFmt) static void ME_GetRunCharFormat(ME_TextEditor *editor, ME_DisplayItem *run, CHARFORMAT2W *pFmt)
{ {
ME_CopyCharFormat(pFmt, &run->member.run.style->fmt); ME_CopyCharFormat(pFmt, &run->member.run.style->fmt);
......
...@@ -508,3 +508,31 @@ void ME_ClearTempStyle(ME_TextEditor *editor) ...@@ -508,3 +508,31 @@ void ME_ClearTempStyle(ME_TextEditor *editor)
ME_ReleaseStyle(editor->pBuffer->pCharStyle); ME_ReleaseStyle(editor->pBuffer->pCharStyle);
editor->pBuffer->pCharStyle = NULL; editor->pBuffer->pCharStyle = NULL;
} }
/******************************************************************************
* ME_SetDefaultCharFormat
*
* Applies a style change to the default character style.
*
* The default style is special in that it is mutable - runs
* in the document that have this style should change if the
* default style changes. That means we need to fix up this
* style manually.
*/
void ME_SetDefaultCharFormat(ME_TextEditor *editor, CHARFORMAT2W *mod)
{
ME_Style *style, *def = editor->pBuffer->pDefaultStyle;
assert(mod->cbSize == sizeof(CHARFORMAT2W));
style = ME_ApplyStyle(def, mod);
def->fmt = style->fmt;
def->tm = style->tm;
if (def->font_cache)
{
release_font_cache( def->font_cache );
def->font_cache = NULL;
}
ScriptFreeCache( &def->script_cache );
ME_ReleaseStyle( style );
ME_MarkAllForWrapping( editor );
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment