}
-void InsetFoot::updateBuffer(ParIterator const & it, UpdateType utype)
+void InsetFoot::updateBuffer(ParIterator const & it, UpdateType utype, bool const deleted)
{
BufferParams const & bp = buffer().masterBuffer()->params();
Counters & cnts = bp.documentClass().counters();
InsetLayout const & il = getLayout();
docstring const & count = il.counter();
custom_label_ = translateIfPossible(il.labelstring());
- if (cnts.hasCounter(count))
+
+ int val = cnts.value(count);
+ if (cnts.hasCounter(count)) {
cnts.step(count, utype);
- custom_label_ += ' ' + cnts.theCounter(count, lang->code());
+ custom_label_ += ' ' + cnts.theCounter(count, lang->code());
+ if (deleted)
+ // un-step after deleted counter
+ cnts.set(count, val);
+ } else
+ custom_label_ += ' ' + from_ascii("#");
setLabel(custom_label_);
- InsetCollapsible::updateBuffer(it, utype);
+ InsetCollapsible::updateBuffer(it, utype, deleted);
if (utype == OutputUpdate)
cnts.restoreLastCounter();
}