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)
|
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)
|
||||||
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 );
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue