Reset font formatting of inset entries on creation (#11961)

This commit is contained in:
Juergen Spitzmueller 2022-02-16 14:25:25 +01:00
parent 6adb083384
commit 92aa12317e

View File

@ -243,7 +243,8 @@ static void ipaChar(Cursor & cur, InsetIPAChar::Kind kind)
static bool doInsertInset(Cursor & cur, Text * text, static bool doInsertInset(Cursor & cur, Text * text,
FuncRequest const & cmd, bool edit, bool pastesel) FuncRequest const & cmd, bool edit,
bool pastesel, bool resetfont = false)
{ {
Buffer & buffer = cur.bv().buffer(); Buffer & buffer = cur.bv().buffer();
BufferParams const & bparams = buffer.params(); BufferParams const & bparams = buffer.params();
@ -346,6 +347,13 @@ static bool doInsertInset(Cursor & cur, Text * text,
cur.clearSelection(); // bug 393 cur.clearSelection(); // bug 393
cur.finishUndo(); cur.finishUndo();
if (inset_text) { if (inset_text) {
if (resetfont) {
// Reset of font (not language) is requested.
// Used by InsetIndex (#11961).
Language const * lang = cur.getFont().language();
Font font(bparams.getFont().fontInfo(), lang);
cur.paragraph().resetFonts(font);
}
inset_text->fixParagraphsFont(); inset_text->fixParagraphsFont();
cur.pos() = 0; cur.pos() = 0;
cur.pit() = 0; cur.pit() = 0;
@ -2105,16 +2113,19 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
case LFUN_INDEX_INSERT: case LFUN_INDEX_INSERT:
case LFUN_PREVIEW_INSERT: case LFUN_PREVIEW_INSERT:
case LFUN_SCRIPT_INSERT: case LFUN_SCRIPT_INSERT:
case LFUN_IPA_INSERT: case LFUN_IPA_INSERT: {
// Indexes reset font formatting (#11961)
bool const resetfont = cmd.action() == LFUN_INDEX_INSERT;
// Open the inset, and move the current selection // Open the inset, and move the current selection
// inside it. // inside it.
doInsertInset(cur, this, cmd, true, true); doInsertInset(cur, this, cmd, true, true, resetfont);
cur.posForward(); cur.posForward();
cur.setCurrentFont(); cur.setCurrentFont();
// Some insets are numbered, others are shown in the outline pane so // Some insets are numbered, others are shown in the outline pane so
// let's update the labels and the toc backend. // let's update the labels and the toc backend.
cur.forceBufferUpdate(); cur.forceBufferUpdate();
break; break;
}
case LFUN_FLEX_INSERT: { case LFUN_FLEX_INSERT: {
// Open the inset, and move the current selection // Open the inset, and move the current selection