X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FRowPainter.cpp;h=276664237f220572c99621abcd84d80148d4a226;hb=5792606ff96cba6e7c8741e7bfc9024463cd21f8;hp=8c62926889000c68a6262d724a9c30e8752920f2;hpb=e52a83549db311883d93dff4595ead7622dbfa75;p=features.git diff --git a/src/RowPainter.cpp b/src/RowPainter.cpp index 8c62926889..276664237f 100644 --- a/src/RowPainter.cpp +++ b/src/RowPainter.cpp @@ -104,42 +104,40 @@ FontInfo RowPainter::labelFont() const // This draws green lines around each inset. -void RowPainter::paintInset(Inset const * inset, Font const & font, - Change const & change, - pos_type const pos) +void RowPainter::paintInset(Row::Element const & e) { // Handle selection bool const pi_selected = pi_.selected; Cursor const & cur = pi_.base.bv->cursor(); if (cur.selection() && cur.text() == &text_ && cur.normalAnchor().text() == &text_) - pi_.selected = row_.sel_beg <= pos && row_.sel_end > pos; + pi_.selected = row_.sel_beg <= e.pos && row_.sel_end > e.pos; - LASSERT(inset, return); + LASSERT(e.inset, return); // Backup full_repaint status because some insets (InsetTabular) // requires a full repaint bool const pi_full_repaint = pi_.full_repaint; bool const pi_do_spellcheck = pi_.do_spellcheck; Change const pi_change = pi_.change_; - pi_.base.font = inset->inheritFont() ? font.fontInfo() : + pi_.base.font = e.inset->inheritFont() ? e.font.fontInfo() : pi_.base.bv->buffer().params().getFont().fontInfo(); - pi_.ltr_pos = !font.isVisibleRightToLeft(); - pi_.change_ = change_.changed() ? change_ : change; - pi_.do_spellcheck &= inset->allowSpellCheck(); + pi_.ltr_pos = !e.font.isVisibleRightToLeft(); + pi_.change_ = change_.changed() ? change_ : e.change; + pi_.do_spellcheck &= e.inset->allowSpellCheck(); int const x1 = int(x_); - pi_.base.bv->coordCache().insets().add(inset, x1, yo_); + pi_.base.bv->coordCache().insets().add(e.inset, x1, yo_); // insets are painted completely. Recursive // FIXME: it is wrong to completely paint the background // if we want to do single row painting. - inset->drawBackground(pi_, x1, yo_); - inset->drawSelection(pi_, x1, yo_); - inset->draw(pi_, x1, yo_); + e.inset->drawBackground(pi_, x1, yo_); + e.inset->drawSelection(pi_, x1, yo_); + e.inset->draw(pi_, x1, yo_); - Dimension const & dim = pi_.base.bv->coordCache().insets().dim(inset); + Dimension const & dim = pi_.base.bv->coordCache().insets().dim(e.inset); - paintForeignMark(x_, font.language(), dim.descent()); + paintForeignMark(x_, e.font.language(), dim.descent()); x_ += dim.width(); @@ -587,7 +585,7 @@ void RowPainter::paintOnlyInsets() x_ += e.full_width(); continue; } - paintInset(e.inset, e.font, e.change, e.pos); + paintInset(e); } else x_ += e.full_width(); } @@ -615,7 +613,7 @@ void RowPainter::paintText() case Row::INSET: { // If outer row has changed, nested insets are repaint completely. pi_.base.bv->coordCache().insets().add(e.inset, int(x_), yo_); - paintInset(e.inset, e.font, e.change, e.pos); + paintInset(e); foreign_descent = e.dim.descent(); } break;