From 6e3e88919e044db1382f7ffbe3a08b8524c154d0 Mon Sep 17 00:00:00 2001 From: Gregor Lohaus Date: Sun, 31 May 2026 21:50:17 +0200 Subject: [PATCH] Revert "fix glyph-overhang artifacts in partial row repaint" This reverts commit 57103bb98bde66fc1207af839596a234a5dfd89b. --- .../gregor/jprototerm/TerminalPaneNode.java | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/src/main/java/com/gregor/jprototerm/TerminalPaneNode.java b/src/main/java/com/gregor/jprototerm/TerminalPaneNode.java index 1e5c8a3..c6a2688 100644 --- a/src/main/java/com/gregor/jprototerm/TerminalPaneNode.java +++ b/src/main/java/com/gregor/jprototerm/TerminalPaneNode.java @@ -44,11 +44,6 @@ final class TerminalPaneNode extends Region { private static final int DIRTY_PARTIAL = 1; private static final int DIRTY_FULL = 2; - // Glyphs (bold/italic/wide) can overhang into neighbouring cells. When repainting a - // column run we redraw this many extra cells of text on each side, clipped to the - // cleared span, so a neighbour's overhang is restored without disturbing its own cell. - private static final int GLYPH_OVERHANG_CELLS = 2; - // Debug toggle: when set, skip the per-column repaint and always repaint the whole row. // Used to bisect partial-repaint artifacts (stale black bars near the cursor). private static final boolean FULL_ROW_REPAINT = @@ -856,18 +851,7 @@ final class TerminalPaneNode extends Region { } drawRowBackgrounds(gc, row, localCellTop, cellWidth, lineHeight, startColumn, endColumn); - - // Repaint text for a few neighbouring cells too, clipped to the cleared span, so - // any glyph overhang from just-outside cells (erased by the clearRect above) is - // restored. The clip keeps us from touching those neighbours' own cell areas. - gc.save(); - gc.beginPath(); - gc.rect(x, 0.0, width, canvas.getHeight()); - gc.clip(); - int textStart = Math.max(0, startColumn - GLYPH_OVERHANG_CELLS); - int textEnd = Math.min(row.cells().size() - 1, endColumn + GLYPH_OVERHANG_CELLS); - drawRowText(gc, row, baseline, cellWidth, textStart, textEnd); - gc.restore(); + drawRowText(gc, row, baseline, cellWidth, startColumn, endColumn); } private void paintSidePadding(GraphicsContext gc, RenderRow row, double paneWidth, double bandHeight) {