diff --git a/src/Changes.cpp b/src/Changes.cpp index e9191e37d8..1626f50f39 100644 --- a/src/Changes.cpp +++ b/src/Changes.cpp @@ -575,21 +575,22 @@ void Change::paintCue(PainterInfo & pi, double const x1, double const y1, * y2 /_____ * x1 x2 */ - double y = 0; switch(type) { case UNCHANGED: return; case INSERTED: - y = y2; - break; + pi.pain.line(int(x1), int(y2) + 1, int(x2), int(y2) + 1, + color(), Painter::line_solid, + pi.base.solidLineThickness()); + return; case DELETED: - y = y1; - break; + // FIXME: we cannot use antialias since we keep drawing on the same + // background with the current painting mechanism. + pi.pain.line(int(x1), int(y2), int(x2), int(y1), + color(), Painter::line_solid_aliased, + pi.base.solidLineThickness()); + return; } - // we cannot use antialias since we keep drawing on the same background - pi.pain.line(int(x1), int(y2), int(x2), int(y), - color(), Painter::line_solid_aliased, - pi.base.solidLineThickness()); } diff --git a/src/mathed/InsetMathHull.cpp b/src/mathed/InsetMathHull.cpp index beb3b2a121..2916bb2ea0 100644 --- a/src/mathed/InsetMathHull.cpp +++ b/src/mathed/InsetMathHull.cpp @@ -559,15 +559,15 @@ void InsetMathHull::drawBackground(PainterInfo & pi, int x, int y) const void InsetMathHull::draw(PainterInfo & pi, int x, int y) const { BufferView const * const bv = pi.base.bv; + Dimension const dim = dimension(*bv); if (type_ == hullRegexp) { - Dimension const dim = dimension(*bv); pi.pain.rectangle(x + 1, y - dim.ascent() + 1, dim.width() - 2, dim.height() - 2, Color_regexpframe); } if (previewState(bv)) { - Dimension const dim = dimension(*bv); + // FIXME CT this if (previewTooSmall(dim)) { // we have an extra frame preview_->draw(pi, x + ERROR_FRAME_WIDTH, y); @@ -597,6 +597,10 @@ void InsetMathHull::draw(PainterInfo & pi, int x, int y) const pi.draw(xx, yy, nl); } } + // drawing change line + if (canPaintChange(*bv)) + pi.change_.paintCue(pi, x + 1, y + 1 - dim.asc, + x + dim.wid, y + dim.des); setPosCache(pi, x, y); } @@ -2582,4 +2586,12 @@ void InsetMathHull::recordLocation(DocIterator const & di) docit_ = di; } + +bool InsetMathHull::canPaintChange(BufferView const &) const +{ + // We let RowPainter do it seamlessly for inline insets + return display() != Inline; +} + + } // namespace lyx diff --git a/src/mathed/InsetMathHull.h b/src/mathed/InsetMathHull.h index 6f2f850e3b..f3ea8a8166 100644 --- a/src/mathed/InsetMathHull.h +++ b/src/mathed/InsetMathHull.h @@ -185,6 +185,8 @@ public: std::string contextMenuName() const; /// InsetCode lyxCode() const { return MATH_HULL_CODE; } + /// + bool canPaintChange(BufferView const &) const; protected: InsetMathHull(InsetMathHull const &);