mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 05:25:26 +00:00
Move some tests upstream, since we'll need it there
This commit is contained in:
parent
6bcdea2b2d
commit
0a44c1687e
@ -342,7 +342,10 @@ public:
|
||||
Change & running_change,
|
||||
Layout const & style,
|
||||
pos_type & i,
|
||||
unsigned int & column);
|
||||
unsigned int & column,
|
||||
bool const fontswitch_inset,
|
||||
bool const closeLanguage,
|
||||
bool const lang_switched_at_inset);
|
||||
|
||||
///
|
||||
void latexSpecialChar(
|
||||
@ -957,7 +960,10 @@ void Paragraph::Private::latexInset(BufferParams const & bparams,
|
||||
Change & running_change,
|
||||
Layout const & style,
|
||||
pos_type & i,
|
||||
unsigned int & column)
|
||||
unsigned int & column,
|
||||
bool const fontswitch_inset,
|
||||
bool const closeLanguage,
|
||||
bool const lang_switched_at_inset)
|
||||
{
|
||||
Inset * inset = owner_->getInset(i);
|
||||
LBUFERR(inset);
|
||||
@ -1028,21 +1034,7 @@ void Paragraph::Private::latexInset(BufferParams const & bparams,
|
||||
}
|
||||
|
||||
if (open_font && (!inset->inheritFont() || inset->allowMultiPar())) {
|
||||
// Some insets cannot be inside a font change command.
|
||||
// However, even such insets *can* be placed in \L or \R
|
||||
// or their equivalents (for RTL language switches),
|
||||
// so we don't close the language in those cases
|
||||
// (= differing isRightToLeft()).
|
||||
// ArabTeX, though, doesn't seem to handle this special behavior.
|
||||
bool const inRLSwitch =
|
||||
basefont.isRightToLeft() != running_font.isRightToLeft()
|
||||
&& basefont.language()->lang() != "arabic_arabtex"
|
||||
&& running_font.language()->lang() != "arabic_arabtex";
|
||||
// Having said that, PassThru insets must be inside a font change command,
|
||||
// as we do not re-open the font inside. So:
|
||||
bool const closeLanguage = !inset->isPassThru() && !inRLSwitch;
|
||||
bool lang_closed = false;
|
||||
bool lang_switched_at_inset = false;
|
||||
// Close language if needed
|
||||
if (closeLanguage) {
|
||||
// We need prev_font here as language changes directly at inset
|
||||
@ -1058,7 +1050,6 @@ void Paragraph::Private::latexInset(BufferParams const & bparams,
|
||||
needPar, closeLanguage);
|
||||
column += count;
|
||||
lang_closed = count > 0;
|
||||
lang_switched_at_inset = prev_font.language() != running_font.language();
|
||||
}
|
||||
// Update the running_font, making sure, however,
|
||||
// to leave the language as it was.
|
||||
@ -2788,10 +2779,32 @@ void Paragraph::latex(BufferParams const & bparams,
|
||||
// We need to restore parts of this after insets with
|
||||
// allowMultiPar() true
|
||||
Font const save_basefont = basefont;
|
||||
Font const save_runningfont = running_font;
|
||||
bool closeLanguage = false;
|
||||
bool lang_switched_at_inset = false;
|
||||
if (fontswitch_inset) {
|
||||
// Some insets cannot be inside a font change command.
|
||||
// However, even such insets *can* be placed in \L or \R
|
||||
// or their equivalents (for RTL language switches),
|
||||
// so we don't close the language in those cases
|
||||
// (= differing isRightToLeft()).
|
||||
// ArabTeX, though, doesn't seem to handle this special behavior.
|
||||
bool const inRLSwitch =
|
||||
basefont.isRightToLeft() != running_font.isRightToLeft()
|
||||
&& basefont.language()->lang() != "arabic_arabtex"
|
||||
&& running_font.language()->lang() != "arabic_arabtex";
|
||||
// Having said that, PassThru insets must be inside a font change command,
|
||||
// as we do not re-open the font inside. So:
|
||||
closeLanguage = !inset->isPassThru() && !inRLSwitch;;
|
||||
// We need to check prev_font as language changes directly at inset
|
||||
// will only be started inside the inset.
|
||||
lang_switched_at_inset = prev_font.language() != running_font.language();
|
||||
}
|
||||
d->latexInset(bparams, os, rp, running_font,
|
||||
basefont, real_outerfont, open_font,
|
||||
runningChange, style, i, column);
|
||||
if (multipar_inset) {
|
||||
runningChange, style, i, column,
|
||||
fontswitch_inset, closeLanguage, lang_switched_at_inset);
|
||||
if (open_font) {
|
||||
bool needPar = false;
|
||||
column += running_font.latexWriteEndChanges(
|
||||
|
Loading…
Reference in New Issue
Block a user