]> git.lyx.org Git - lyx.git/blobdiff - src/RowPainter.cpp
Remove now redundant string
[lyx.git] / src / RowPainter.cpp
index b36fab9e4cbe9bb71d1fd994698cf0a3ea6f67ae..6e4cf31ac10eed23dd7016d30067091ec4fd27b1 100644 (file)
@@ -95,12 +95,12 @@ void RowPainter::paintInset(Row::Element const & e) const
        // 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_;
+       Change const pi_change = pi_.change;
 
        pi_.base.font = e.inset->inheritFont() ? e.font.fontInfo() :
                pi_.base.bv->buffer().params().getFont().fontInfo();
        pi_.ltr_pos = !e.font.isVisibleRightToLeft();
-       pi_.change_ = pi_.change_.changed() ? pi_.change_ : e.change;
+       pi_.change = pi_.change.changed() ? pi_.change : e.change;
        pi_.do_spellcheck &= e.inset->allowSpellCheck();
 
        int const x1 = int(x_);
@@ -115,7 +115,7 @@ void RowPainter::paintInset(Row::Element const & e) const
 
        // Restore full_repaint status.
        pi_.full_repaint = pi_full_repaint;
-       pi_.change_ = pi_change;
+       pi_.change = pi_change;
        pi_.do_spellcheck = pi_do_spellcheck;
        pi_.selected = pi_selected;
 
@@ -169,10 +169,13 @@ void RowPainter::paintNoSpellingMark(Row::Element const & e) const
        // We at the same voffset than the misspelled mark, since
        // these two are mutually exclusive
        int const desc = e.inset ? e.dim.descent() : 0;
-       int const y = yo_ + pi_.base.solidLineOffset() + desc
+       int y = yo_ + pi_.base.solidLineOffset() + desc
                + pi_.base.solidLineThickness()
                + (e.change.changed() ? pi_.base.solidLineThickness() + 1 : 0)
                + 1;
+       // Make sure that the mark does not go below the row rectangle
+       y = min(y, yo_ + row_.descent() - 1);
+
        pi_.pain.line(int(x_), y, int(x_ + e.full_width()), y, Color_language,
                      Painter::line_onoffdash, pi_.base.solidLineThickness());
 }
@@ -186,9 +189,11 @@ void RowPainter::paintMisspelledMark(Row::Element const & e) const
        // to avoid drawing at the same vertical offset
        FontMetrics const & fm = theFontMetrics(e.font);
        int const thickness = max(fm.lineWidth(), 2);
-       int const y = yo_ + pi_.base.solidLineOffset() + pi_.base.solidLineThickness()
+       int y = yo_ + pi_.base.solidLineOffset() + pi_.base.solidLineThickness()
                + (e.change.changed() ? pi_.base.solidLineThickness() + 1 : 0)
                + 1 + thickness / 2;
+       // Make sure that the mark does not go below the row rectangle
+       y = min(y, yo_ + row_.descent() - 1);
 
        //FIXME: this could be computed only once, it is probably not costly.
        // check for cursor position
@@ -479,10 +484,10 @@ void RowPainter::paintLast() const
                int x = 0;
                if (row_.isRTL()) {
                        int const normal_x = nestMargin() + changebarMargin();
-                       x = min(normal_x, row_.left_margin - size - Inset::TEXT_TO_INSET_OFFSET);
+                       x = min(normal_x, row_.left_margin - size - Inset::textOffset(pi_.base.bv));
                } else {
                        int const normal_x = tm_.width() - row_.right_margin
-                               - size - Inset::TEXT_TO_INSET_OFFSET;
+                               - size - Inset::textOffset(pi_.base.bv);
                        x = max(normal_x, row_.width());
                }