]> git.lyx.org Git - features.git/commitdiff
Mark labels in non-outputting insets as inactive.
authorJuergen Spitzmueller <spitz@lyx.org>
Mon, 31 Dec 2018 17:32:38 +0000 (18:32 +0100)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 18 Jun 2020 12:39:54 +0000 (14:39 +0200)
Fixes: #11437
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;
                        }