pars_[pit].rows().clear();
current_font = getFont(pars_[0], 0);
- updateCounters(*bv->buffer());
+ updateLabels(*bv->buffer());
}
LyXFont f = par.getFontSettings(params, pos);
if (!isMainText())
applyOuterFont(f);
- if (layout->labeltype == LABEL_MANUAL && pos < body_pos)
- return f.realize(layout->reslabelfont);
- else
- return f.realize(layout->resfont);
+ LyXFont lf;
+ LyXFont rlf;
+ if (layout->labeltype == LABEL_MANUAL && pos < body_pos) {
+ lf = layout->labelfont;
+ rlf = layout->reslabelfont;
+ } else {
+ lf = layout->font;
+ rlf = layout->resfont;
+ }
+ // In case the default family has been customized
+ if (lf.family() == LyXFont::INHERIT_FAMILY)
+ rlf.setFamily(params.getFont().family());
+ return f.realize(rlf);
}
// The uncommon case need not be optimized as much
break;
}
// Realize against environment font information
- if (pit < pars_.size())
+ // NOTE: the cast to pit_type should be removed when pit_type
+ // changes to a unsigned integer.
+ if (pit < pit_type(pars_.size()))
font.realize(outerFont(pit, pars_));
// Realize with the fonts of lesser depth.
{
LyXLayout_ptr const & layout = pars_[pit].layout();
- if (!pars_[pit].getDepth())
- return layout->resfont;
+ if (!pars_[pit].getDepth()) {
+ LyXFont lf = layout->resfont;
+ // In case the default family has been customized
+ if (layout->font.family() == LyXFont::INHERIT_FAMILY)
+ lf.setFamily(bv()->buffer()->params().getFont().family());
+ return lf;
+ }
LyXFont font = layout->font;
// Realize with the fonts of lesser depth.
{
LyXLayout_ptr const & layout = par.layout();
- if (!par.getDepth())
- return layout->reslabelfont;
+ if (!par.getDepth()) {
+ LyXFont lf = layout->reslabelfont;
+ // In case the default family has been customized
+ if (layout->labelfont.family() == LyXFont::INHERIT_FAMILY)
+ lf.setFamily(bv()->buffer()->params().getFont().family());
+ return lf;
+ }
LyXFont font = layout->labelfont;
// Realize with the fonts of lesser depth.
if (lyxlayout->is_environment) {
// move everything in a new environment inset
lyxerr[Debug::DEBUG] << "setting layout " << layout << endl;
- bv.owner()->dispatch(FuncRequest(LFUN_HOME));
- bv.owner()->dispatch(FuncRequest(LFUN_ENDSEL));
+ bv.owner()->dispatch(FuncRequest(LFUN_LINE_BEGIN));
+ bv.owner()->dispatch(FuncRequest(LFUN_LINE_END_SELECT));
bv.owner()->dispatch(FuncRequest(LFUN_CUT));
InsetBase * inset = new InsetEnvironment(params, layout);
insertInset(cur, inset);
pit_type undopit = undoSpan(end - 1);
recUndo(start, undopit - 1);
setLayout(start, end, layout);
- updateCounters(cur.buffer());
+ updateLabels(cur.buffer());
}
}
// this handles the counter labels, and also fixes up
// depth values for follow-on (child) paragraphs
- updateCounters(cur.buffer());
+ updateLabels(cur.buffer());
}
linestr[i] = ' ';
newline_inserted = true;
}
- } else if (IsPrintable(linestr[i])) {
+ } else if (isPrintable(linestr[i])) {
newline_inserted = false;
}
}
cur.resetAnchor();
}
}
- ParIterator par_it(old);
- if (needsUpdateCounters(old.buffer(), par_it))
- updateCounters(old.buffer());
+ // There is a crash reported by Edwin Leuven (16/04/2006) because of:
+ //ParIterator par_it(old);
+ //updateLabels(old.buffer(), par_it);
+ // So for now we do the full update:
+ updateLabels(old.buffer());
return true;
}