mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 13:31:49 +00:00
Correctly classify macros
Some macros defined in the lib/symbols file are classified are texmode. But the MathMacro class was missing a currentMode method for returning this information.
This commit is contained in:
parent
3bc08a76c4
commit
314e30d5fd
@ -614,9 +614,7 @@ void MathMacro::draw(PainterInfo & pi, int x, int y) const
|
||||
drawMarkers2(pi, expx, expy);
|
||||
} else {
|
||||
bool drawBox = lyxrc.macro_edit_style == LyXRC::MACRO_EDIT_INLINE_BOX;
|
||||
bool user_macro = !MacroTable::globalMacros().get(name());
|
||||
bool upshape = user_macro ? false : d->macro_ && d->macro_->symbol()
|
||||
&& d->macro_->symbol()->extra == "textmode";
|
||||
bool upshape = currentMode() == TEXT_MODE;
|
||||
Changer dummy = pi.base.font.changeShape(upshape ? UP_SHAPE
|
||||
: pi.base.font.shape());
|
||||
|
||||
@ -753,6 +751,17 @@ size_t MathMacro::appetite() const
|
||||
}
|
||||
|
||||
|
||||
InsetMath::mode_type MathMacro::currentMode() const
|
||||
{
|
||||
// User defined macros are always assumed to be mathmode macros.
|
||||
// Only the global macros defined in lib/symbols may be textmode.
|
||||
|
||||
MacroData const * data = MacroTable::globalMacros().get(name());
|
||||
bool textmode = data && data->symbol() && data->symbol()->extra == "textmode";
|
||||
return textmode ? TEXT_MODE : MATH_MODE;
|
||||
}
|
||||
|
||||
|
||||
void MathMacro::validate(LaTeXFeatures & features) const
|
||||
{
|
||||
// Immediately after a document is loaded, in some cases the MacroData
|
||||
|
@ -70,6 +70,8 @@ public:
|
||||
|
||||
///
|
||||
void validate(LaTeXFeatures &) const;
|
||||
///
|
||||
mode_type currentMode() const;
|
||||
|
||||
///
|
||||
void write(WriteStream & os) const;
|
||||
|
Loading…
Reference in New Issue
Block a user