From fee356eb5610773687cfcada1dde7bc7e97ab146 Mon Sep 17 00:00:00 2001 From: Enrico Forestieri Date: Thu, 25 Jun 2015 00:49:15 +0200 Subject: [PATCH] Assure not to miss requirements on loading with instant preview on --- src/mathed/MathMacro.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/mathed/MathMacro.cpp b/src/mathed/MathMacro.cpp index 8f2d15fefc..636d059a23 100644 --- a/src/mathed/MathMacro.cpp +++ b/src/mathed/MathMacro.cpp @@ -723,8 +723,21 @@ size_t MathMacro::appetite() const void MathMacro::validate(LaTeXFeatures & features) const { + // Immediately after a document is loaded, in some cases the MacroData + // of the global macros defined in the lib/symbols file may still not + // be known to the macro machinery because it will be set only after + // the first call to updateMacros(). This is not a problem unless + // instant preview is on for math, in which case we will be missing + // the corresponding requirements. + // In this case, we get the required info from the global macro table. if (!d->requires_.empty()) features.require(d->requires_); + else if (!d->macro_) { + // Update requires for known global macros. + MacroData const * data = MacroTable::globalMacros().get(name()); + if (data && !data->requires().empty()) + features.require(data->requires()); + } if (name() == "binom") features.require("binom"); -- 2.39.2