Paragraph::value_type c = par->getChar(i);
switch (c) {
case Paragraph::META_INSET:
- case Paragraph::META_HFILL:
- lyxerr << "Element is not allowed in insertERT"
- << endl;
- case Paragraph::META_NEWLINE:
- os << "\n\\newline \n";
+ if (par->getInset(i)->lyxCode() != Inset::NEWLINE_CODE) {
+ lyxerr << "Element is not allowed in insertERT"
+ << endl;
+ } else {
+ par->getInset(i)->write(buf, os);
+ }
break;
+
case '\\':
os << "\n\\backslash \n";
break;
// ignore all struck out text
if (isDeletedText(*par, i))
continue;
-
- Paragraph::value_type c = par->getChar(i);
- switch (c) {
- case Paragraph::META_NEWLINE:
+
+ if (par->isNewline(i)) {
os << '\n';
++lines;
- break;
- default:
- os << c;
- break;
+ } else {
+ os << par->getChar(i);
}
}
par = par->next();
while (par) {
pos_type siz = par->size();
for (pos_type i = 0; i < siz; ++i) {
- Paragraph::value_type c = par->getChar(i);
- switch (c) {
- case Paragraph::META_NEWLINE:
+ if (par->isNewline(i)) {
os << '\n';
++lines;
- break;
- default:
- os << c;
- break;
+ } else {
+ os << par->getChar(i);
}
}
par = par->next();
while (par) {
pos_type siz = par->size();
for (pos_type i = 0; i < siz; ++i) {
- Paragraph::value_type c = par->getChar(i);
- switch (c) {
- case Paragraph::META_NEWLINE:
+ if (par->isNewline(i)) {
os << '\n';
++lines;
- break;
- default:
- os << c;
- break;
+ } else {
+ os << par->getChar(i);
}
}
par = par->next();
InsetERTMailer::string2params(cmd.argument, status_);
status(bv, status_);
- bv->updateInset(this, true);
+ bv->updateInset(this);
result = DISPATCHED;
}
break;
-
+
case LFUN_MOUSE_PRESS:
lfunMousePress(cmd);
result = DISPATCHED;
void InsetERT::draw(BufferView * bv, LyXFont const & f,
- int baseline, float & x, bool cleared) const
+ int baseline, float & x) const
{
lyx::Assert(bv);
cache(bv);
if (!owner())
x += static_cast<float>(scroll());
- if (!cleared && (inset.need_update == InsetText::FULL ||
- inset.need_update == InsetText::INIT ||
- top_x != int(x) ||
- top_baseline != baseline))
- {
- // we don't need anymore to clear here we just have to tell
- // the underlying LyXText that it should do the RowClear!
- inset.setUpdateStatus(bv, InsetText::FULL);
- bv->text->status(bv, LyXText::CHANGED_IN_DRAW);
- return;
- }
-
top_x = int(x);
topx_set = true;
top_baseline = baseline;
int const bl = baseline - ascent(bv, f) + ascent_collapsed();
if (inlined()) {
- inset.draw(bv, f, baseline, x, cleared);
+ inset.draw(bv, f, baseline, x);
} else {
draw_collapsed(pain, bl, old_x);
- inset.draw(bv, f,
- bl + descent_collapsed() + inset.ascent(bv, f),
- x, cleared);
+ inset.draw(bv, f, bl + descent_collapsed() + inset.ascent(bv, f), x);
}
need_update = NONE;
}
bv->unlockInset(const_cast<InsetERT *>(this));
break;
}
- if (bv)
- bv->updateInset(const_cast<InsetERT *>(this), false);
+ if (bv) {
+ bv->updateInset(const_cast<InsetERT *>(this));
+ bv->buffer()->markDirty();
+ }
}
}