From 328ff9df3a4ac217a0424743575a0c7c293361ea Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Thu, 20 Sep 2018 11:31:23 +0200 Subject: [PATCH] Paint underline for insets too. Fixes bug 11297. --- src/RowPainter.cpp | 18 +++++++++++++++++- src/RowPainter.h | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/RowPainter.cpp b/src/RowPainter.cpp index 149288b2f6..43b3be20ce 100644 --- a/src/RowPainter.cpp +++ b/src/RowPainter.cpp @@ -269,6 +269,21 @@ void RowPainter::paintStringAndSel(Row::Element const & e) const } +void RowPainter::paintTextDecoration(Row::Element const & e) const +{ + // element selected? + bool const sel = (e.pos >= row_.sel_beg && e.endpos <= row_.sel_end) + || pi_.selected; + FontInfo copy = e.font.fontInfo(); + if (sel || e.change.changed()) { + Color const col = e.change.changed() ? e.change.color() + : Color_selectiontext; + copy.setPaintColor(col); + } + pi_.pain.textDecoration(copy, int(x_), yo_, int(e.full_width())); +} + + void RowPainter::paintChange(Row::Element const & e) const { e.change.paintCue(pi_, x_, yo_, x_ + e.full_width(), e.font.fontInfo()); @@ -603,10 +618,11 @@ void RowPainter::paintText() case Row::INSET: paintInset(e); + paintTextDecoration(e); break; case Row::SPACE: - pi_.pain.textDecoration(e.font.fontInfo(), int(x_), yo_, int(e.full_width())); + paintTextDecoration(e); } // The markings of foreign languages diff --git a/src/RowPainter.h b/src/RowPainter.h index 18b4c85226..fc7c36f036 100644 --- a/src/RowPainter.h +++ b/src/RowPainter.h @@ -61,6 +61,7 @@ private: void paintForeignMark(Row::Element const & e) const; void paintNoSpellingMark(Row::Element const & e) const; void paintStringAndSel(Row::Element const & e) const; + void paintTextDecoration(Row::Element const & e) const; void paintMisspelledMark(Row::Element const & e) const; void paintChange(Row::Element const & e) const; void paintAppendixStart(int y) const; -- 2.39.5