[LyX/master] Fixup f96b99dcb35: read correctly \limits after macros

Jean-Marc Lasgouttes lasgouttes at lyx.org
Mon Sep 7 09:49:37 UTC 2020


commit a58bcf1d277e6a2d08dc2a83cf0503beceb0e7dd
Author: Jean-Marc Lasgouttes <lasgouttes at lyx.org>
Date:   Mon Sep 7 12:13:42 2020 +0200

    Fixup f96b99dcb35: 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.
---
 src/mathed/InsetMathMacro.cpp |   17 ++++++++++++++++-
 src/mathed/InsetMathMacro.h   |    7 ++-----
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/src/mathed/InsetMathMacro.cpp b/src/mathed/InsetMathMacro.cpp
index 1443181..bf363b6 100644
--- a/src/mathed/InsetMathMacro.cpp
+++ b/src/mathed/InsetMathMacro.cpp
@@ -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();
diff --git a/src/mathed/InsetMathMacro.h b/src/mathed/InsetMathMacro.h
index 9a4bcc9..4332148 100644
--- a/src/mathed/InsetMathMacro.h
+++ b/src/mathed/InsetMathMacro.h
@@ -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;
@@ -195,9 +195,6 @@ private:
 	bool editMode(BufferView const * bv) const;
 
 	///
-	Limits limits_ = AUTO_LIMITS;
-
-	///
 	class Private;
 	///
 	Private * d;


More information about the lyx-cvs mailing list