]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetLabel.cpp
Mark labels in non-outputting insets as inactive.
[lyx.git] / src / insets / InsetLabel.cpp
index cb419f397d88fa2f3f56e86b982b00f0bfe348a4..768d8293dce23fe625d354419ac5f0b75899870a 100644 (file)
@@ -146,14 +146,16 @@ void InsetLabel::updateBuffer(ParIterator const & par, UpdateType utype)
 {
        docstring const & label = getParam("name");
 
-       // Check if this one is deleted (ct)
+       // Check if this one is active (i.e., neither deleted with change-tracking
+       // nor in an inset that does not produce output, such as notes or inactive branches)
        Paragraph const & para = par.paragraph();
-       bool active = !para.isDeleted(par.pos());
-       // If not, check whether we are in a deleted inset
+       bool active = !para.isDeleted(par.pos()) && para.inInset().producesOutput();
+       // If not, check whether we are in a deleted/non-outputting inset
        if (active) {
                for (size_type sl = 0 ; sl < par.depth() ; ++sl) {
                        Paragraph const & outer_par = par[sl].paragraph();
-                       if (outer_par.isDeleted(par[sl].pos())) {
+                       if (outer_par.isDeleted(par[sl].pos())
+                           || !outer_par.inInset().producesOutput()) {
                                active = false;
                                break;
                        }