mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 13:18:28 +00:00
Reset InsetArgument language after passthru status change
Fixes: #10664
This commit is contained in:
parent
166054126e
commit
d8c018b8c6
@ -68,6 +68,8 @@ void InsetArgument::updateBuffer(ParIterator const & it, UpdateType utype)
|
|||||||
it.inset().getLayout().args() : it.paragraph().layout().args();
|
it.inset().getLayout().args() : it.paragraph().layout().args();
|
||||||
pass_thru_context_ = insetlayout ?
|
pass_thru_context_ = insetlayout ?
|
||||||
it.inset().getLayout().isPassThru() : it.paragraph().layout().pass_thru;
|
it.inset().getLayout().isPassThru() : it.paragraph().layout().pass_thru;
|
||||||
|
// Record PassThru status in order to act on changes.
|
||||||
|
bool const former_pass_thru = pass_thru_;
|
||||||
|
|
||||||
// Handle pre 2.1 ArgInsets (lyx2lyx cannot classify them)
|
// Handle pre 2.1 ArgInsets (lyx2lyx cannot classify them)
|
||||||
if (name_ == "999") {
|
if (name_ == "999") {
|
||||||
@ -139,6 +141,16 @@ void InsetArgument::updateBuffer(ParIterator const & it, UpdateType utype)
|
|||||||
labelstring_ = _("Unknown Argument");
|
labelstring_ = _("Unknown Argument");
|
||||||
tooltip_ = _("Argument not known in this Layout. Will be supressed in the output.");
|
tooltip_ = _("Argument not known in this Layout. Will be supressed in the output.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (former_pass_thru != pass_thru_) {
|
||||||
|
// PassThru status changed. We might need to update
|
||||||
|
// the language of the contents
|
||||||
|
Language const * l = insetlayout
|
||||||
|
? it.inset().buffer().language()
|
||||||
|
: it.buffer()->language();
|
||||||
|
fixParagraphLanguage(l);
|
||||||
|
}
|
||||||
|
|
||||||
setButtonLabel();
|
setButtonLabel();
|
||||||
InsetCollapsable::updateBuffer(it, utype);
|
InsetCollapsable::updateBuffer(it, utype);
|
||||||
}
|
}
|
||||||
@ -187,8 +199,13 @@ void InsetArgument::doDispatch(Cursor & cur, FuncRequest & cmd)
|
|||||||
// forcing to latex_language in InsetText::dispatch(),
|
// forcing to latex_language in InsetText::dispatch(),
|
||||||
// since this does not play nicely with inherited pass_thru
|
// since this does not play nicely with inherited pass_thru
|
||||||
// (see #8471).
|
// (see #8471).
|
||||||
if (pass_thru_ && !pass_thru_local_)
|
if (pass_thru_ && !pass_thru_local_) {
|
||||||
text().dispatch(cur, cmd);
|
text().dispatch(cur, cmd);
|
||||||
|
// For the paste operations, check if we have
|
||||||
|
// non-latex_language, and if so, fix.
|
||||||
|
if (cmd.action() != LFUN_SELF_INSERT)
|
||||||
|
fixParagraphLanguage(buffer().params().language);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
InsetCollapsable::doDispatch(cur, cmd);
|
InsetCollapsable::doDispatch(cur, cmd);
|
||||||
break;
|
break;
|
||||||
@ -322,4 +339,13 @@ void InsetArgument::addToToc(DocIterator const & dit, bool output_active,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void InsetArgument::fixParagraphLanguage(Language const * l)
|
||||||
|
{
|
||||||
|
Font font(inherit_font, l);
|
||||||
|
if (pass_thru_)
|
||||||
|
font.setLanguage(latex_language);
|
||||||
|
paragraphs().front().resetFonts(font);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} // namespace lyx
|
} // namespace lyx
|
||||||
|
@ -92,6 +92,8 @@ private:
|
|||||||
///
|
///
|
||||||
docstring toolTip(BufferView const & bv, int, int) const;
|
docstring toolTip(BufferView const & bv, int, int) const;
|
||||||
///
|
///
|
||||||
|
void fixParagraphLanguage(Language const *);
|
||||||
|
///
|
||||||
std::string name_;
|
std::string name_;
|
||||||
///
|
///
|
||||||
docstring labelstring_;
|
docstring labelstring_;
|
||||||
|
Loading…
Reference in New Issue
Block a user