++pos();
inset().setBuffer(bv_->buffer());
inset().initView();
- forceBufferUpdate();
+ checkBufferStructure();
}
}
+DocIterator DocIterator::getInnerText() const
+{
+ DocIterator texted = *this;
+ while (!texted.inTexted())
+ texted.pop_back();
+ return texted;
+}
+
+
pit_type DocIterator::lastpit() const
{
return inMathed() ? 0 : text()->paragraphs().size() - 1;
Paragraph & innerParagraph() const;
/// return the inner text slice.
CursorSlice const & innerTextSlice() const;
+ /// returns a DocIterator for the containing text inset
+ DocIterator getInnerText() const;
/// the first and last positions of a word at top cursor slice
/// \warning only works within text!
FontSpan locateWord(word_location const loc) const;
#include "Buffer.h"
#include "BufferParams.h"
+#include "Cursor.h"
#include "FloatList.h"
#include "FuncRequest.h"
#include "InsetList.h"
// TocItem creation and update should be made in a dedicated function and
// updateItem should be rewritten to uniformly update the matching items from
// all TOCs.
-bool TocBackend::updateItem(DocIterator const & dit)
+bool TocBackend::updateItem(DocIterator const & dit_in)
{
+ // we need a text
+ DocIterator dit = dit_in.getInnerText();
+
if (dit.text()->getTocLevel(dit.pit()) == Layout::NOT_IN_TOC)
return false;