- right_margin;
Font const & font = ii->inset->noFontChange() ?
bufferfont : displayFont(pit, ii->pos);
- MacroContext mc(buffer, parPos);
+ MacroContext mc(&buffer, parPos);
MetricsInfo mi(bv_, font.fontInfo(), w, mc);
ii->inset->metrics(mi, dim);
Dimension const old_dim = pm.insetDimension(ii->inset);
if (yy + rit->height() > y)
break;
- if (assert_in_view && yy + rit->height() != y) {
- if (!up) {
+ if (assert_in_view) {
+ if (!up && yy + rit->height() > y) {
if (rit != pm.rows().begin()) {
y = yy;
--rit;
--rit;
y = yy;
}
- } else {
+ } else if (up && yy != y) {
if (rit != rlast) {
y = yy + rit->height();
++rit;
- } else if (pit != int(par_metrics_.size())) {
+ } else if (pit < int(text_->paragraphs().size()) - 1) {
++pit;
newParMetricsDown();
ParagraphMetrics const & pm2 = par_metrics_[pit];
else if (ppos >= end)
cursor_vpos = text_->isRTL(par) ? row_pos : end;
else if (ppos > row_pos && ppos >= end)
+ //FIXME: this code is never reached!
+ // (see http://www.lyx.org/trac/changeset/8251)
// Place cursor after char at (logical) position pos - 1
cursor_vpos = (bidi.level(ppos - 1) % 2 == 0)
? bidi.log2vis(ppos - 1) + 1 : bidi.log2vis(ppos - 1);