#include <sstream>
#include <limits>
#include <map>
+#include <algorithm>
using namespace std;
++pos();
inset().setBuffer(bv_->buffer());
inset().initView();
+ forceBufferUpdate();
}
text()->insertInset(*this, inset0);
inset0->setBuffer(bv_->buffer());
inset0->initView();
+ if (inset0->isLabeled())
+ forceBufferUpdate();
}
}
cap::eraseSelection(*this);
cell().insert(pos(), ar);
pos() += ar.size();
- // FIXME audit setBuffer/updateBuffer calls
+ // FIXME audit setBuffer calls
inset().setBuffer(bv_->buffer());
}
// trigger updates of macros, at least, if no full
// updates take place anyway
- updateFlags(Update::Force);
+ screenUpdateFlags(Update::Force);
docstring const name = s.substr(1);
InsetMathNest * const in = inset().asInsetMath()->asNestInset();
updateNeeded |= bv().checkDepm(dummy, *this);
updateTextTargetOffset();
+ if (updateNeeded)
+ forceBufferUpdate();
}
return false;
}
++dummy.pos();
if (bv().checkDepm(dummy, old)) {
updateNeeded = true;
- // Make sure that cur gets back whatever happened to dummy(Lgb)
+ // Make sure that cur gets back whatever happened to dummy (Lgb)
operator=(dummy);
}
} else {
updateNeeded |= bv().checkDepm(*this, old);
}
+ if (updateNeeded)
+ forceBufferUpdate();
updateTextTargetOffset();
return true;
}
}
-void Cursor::updateFlags(Update::flags f)
+void Cursor::screenUpdateFlags(Update::flags f)
{
disp_.update(f);
}
-void Cursor::noUpdate()
+void Cursor::forceBufferUpdate()
+{
+ disp_.forceBufferUpdate();
+}
+
+
+void Cursor::clearBufferUpdate()
+{
+ disp_.clearBufferUpdate();
+}
+
+
+bool Cursor::needBufferUpdate() const
+{
+ return disp_.needBufferUpdate();
+}
+
+
+void Cursor::noScreenUpdate()
{
disp_.update(Update::None);
}