Fixup f96b99dcb3: read correctly \limits after macros

Move InsetMacro::limits_ to InsetMacro::Private, where it should have
been from the start. This means that limits_ is now copied when the
macro is cloned.
This commit is contained in:
Jean-Marc Lasgouttes 2020-09-07 12:13:42 +02:00
parent 062d94c5da
commit a58bcf1d27
2 changed files with 18 additions and 6 deletions

View File

@ -206,7 +206,7 @@ public:
expanded_(buf), definition_(buf), attachedArgsNum_(0),
optionals_(0), nextFoldMode_(true), macroBackup_(buf),
macro_(0), needsUpdate_(false), isUpdating_(false),
appetite_(9), nesting_(0)
appetite_(9), nesting_(0), limits_(AUTO_LIMITS)
{
}
/// Update the pointers to our owner of all expanded macros.
@ -248,6 +248,8 @@ public:
size_t appetite_;
/// Level of nesting in macros (including this one)
int nesting_;
///
Limits limits_;
};
@ -371,6 +373,7 @@ bool InsetMathMacro::addToMathRow(MathRow & mrow, MetricsInfo & mi) const
return has_contents;
}
/// Whether the inset allows \(no)limits
bool InsetMathMacro::allowsLimitsChange() const
{
@ -403,6 +406,18 @@ Limits InsetMathMacro::defaultLimits() const
}
Limits InsetMathMacro::limits() const
{
return d->limits_;
}
void InsetMathMacro::limits(Limits lim)
{
d->limits_ = lim;
}
void InsetMathMacro::beforeMetrics() const
{
d->macro_->lock();

View File

@ -47,9 +47,9 @@ public:
/// The default limits value
Limits defaultLimits() const;
/// whether the inset has limit-like sub/superscript
Limits limits() const { return limits_; }
Limits limits() const;
/// sets types of sub/superscripts
void limits(Limits lim) { limits_ = lim; }
void limits(Limits lim);
///
void beforeMetrics() const;
@ -194,9 +194,6 @@ private:
///
bool editMode(BufferView const * bv) const;
///
Limits limits_ = AUTO_LIMITS;
///
class Private;
///