commit 328ff9df3a4ac217a0424743575a0c7c293361ea
Author: Jean-Marc Lasgouttes <[email protected]>
Date:   Thu Sep 20 11:31:23 2018 +0200

    Paint underline for insets too.
    
    Fixes bug 11297.
---
 src/RowPainter.cpp |   18 +++++++++++++++++-
 src/RowPainter.h   |    1 +
 2 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/src/RowPainter.cpp b/src/RowPainter.cpp
index 149288b..43b3be2 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 18b4c85..fc7c36f 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;

Reply via email to