commit fee356eb5610773687cfcada1dde7bc7e97ab146
Author: Enrico Forestieri <[email protected]>
Date:   Thu Jun 25 00:49:15 2015 +0200

    Assure not to miss requirements on loading with instant preview on

diff --git a/src/mathed/MathMacro.cpp b/src/mathed/MathMacro.cpp
index 8f2d15f..636d059 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");

Reply via email to