riched20: Release the font cache when changing the default style.
Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
bb165d22e0
commit
f47aab6167
|
@ -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)
|
||||
{
|
||||
ME_CopyCharFormat(pFmt, &run->member.run.style->fmt);
|
||||
|
|
|
@ -508,3 +508,31 @@ void ME_ClearTempStyle(ME_TextEditor *editor)
|
|||
ME_ReleaseStyle(editor->pBuffer->pCharStyle);
|
||||
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 );
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue