commit c021e4803a75875af417b3dfc68021a666cd744b
Author: Juergen Spitzmueller <sp...@lyx.org>
Date:   Sun Mar 2 08:48:09 2025 +0100

    Strike through deleted tabular cells
---
 src/insets/InsetTabular.cpp | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp
index 413cecc812..2de2caa8ba 100644
--- a/src/insets/InsetTabular.cpp
+++ b/src/insets/InsetTabular.cpp
@@ -4911,15 +4911,17 @@ void InsetTableCell::metrics(MetricsInfo & mi, 
Dimension & dim) const
 
 void InsetTableCell::draw(PainterInfo & pi, int x, int y) const
 {
-       if (background_color == "none" || 
!lcolor.isKnownLyXName(background_color))
+       // We have a specific draw method for the case when we
+       // need to draw on the whole cell rectangle
+       // (= colored cells or deleted cells)
+       // In the other cases we use InsetText::draw()
+       if ((background_color == "none" || 
!lcolor.isKnownLyXName(background_color))
+           && !pi.change.deleted())
                return InsetText::draw(pi, x, y);
 
-       // special case for colored cells, where we need to fill out
-       // the whole space
        TextMetrics & tm = pi.base.bv->textMetrics(&text());
-
        // FIXME: This calculation is ugly, but we do not seem to
-       // have the proper cell dimensions avaliable here.
+       // have the proper cell dimensions available here.
        int const w = width;
        int const h = mr_rows * (tm.height() + 2 * topOffset(pi.base.bv) + 
bottomOffset(pi.base.bv) + Painter::thin_line);
        int const yframe = y - mr_rows * (tm.ascent()) - mr_rows * 
(Painter::thin_line) - topOffset(pi.base.bv);
@@ -4937,10 +4939,9 @@ void InsetTableCell::draw(PainterInfo & pi, int x, int 
y) const
                tm.draw(pi, x + leftOffset(pi.base.bv), y);
        }
 
-       if (canPaintChange(*pi.base.bv) && (!change_drawn || 
pi.change.deleted()))
-               // Do not draw the change tracking cue if already done by 
RowPainter and
-               // do not draw the cue for INSERTED if the information is 
already in the
-               // color of the frame
+       // Strike through the cell if deleted and not already handled by
+       // RowPainter.
+       if (!change_drawn || pi.change.deleted())
                pi.change.paintCue(pi, xframe, yframe, xframe + w, yframe + h);
 }
 
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
https://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to