From 6e437215aae175028689ebae32ccb68ad11df574 Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Sun, 19 Jul 2026 10:28:26 +0000 Subject: [PATCH 15/71] debug(macos): hide cursor in the probe to isolate the cell-0 overlay (rev 9) Confirmed the frame's last renderTile is an opaque full-cell solid block at line0 col0 that erases the 'c'; it samples the solid direct-mapped Block-cursor shape. The Qt renderer only emits a Block-cursor tile on the animating path (a fresh cursor move renders the shape regardless of Block), otherwise Block is realized via cell color inversion. Hide the cursor (DECTCEM \033[?25l) in this static probe to confirm the overlay is the cursor and to get a clean render of the text; the real app will handle the cursor properly (Block via inversion) later. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01AeG2jwYMX5gdvvtUnx3PJa --- src/contour_macos/render_probe.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/contour_macos/render_probe.cpp b/src/contour_macos/render_probe.cpp index 6c234642..7d68f45b 100644 --- a/src/contour_macos/render_probe.cpp +++ b/src/contour_macos/render_probe.cpp @@ -59,7 +59,7 @@ void writePpm(std::string const& path, contour_macos::PixelBuffer const& buf) // produced it. __DATE__/__TIME__ update whenever THIS translation unit is recompiled, so the // printed line is a reliable "is the running binary built from the current source?" signal // without needing a full rebuild. -#define RENDER_PROBE_REVISION 8 +#define RENDER_PROBE_REVISION 9 int main(int argc, char** argv) { @@ -74,6 +74,7 @@ int main(int argc, char** argv) auto const pageSize = PageSize { LineCount { 10 }, ColumnCount { 40 } }; MockTerm mock { pageSize, {}, 65536, [](auto& m) { + m.writeToScreen("\033[?25l"); // hide cursor so it does not overlay the first cell in this static probe m.writeToScreen("\033[1;37mcontour\033[0m on \033[1;32mmacOS PowerPC\033[0m\r\n"); m.writeToScreen("\033[31mred \033[32mgreen \033[33myellow \033[34mblue\033[0m\r\n"); m.writeToScreen("\033[7mreverse\033[0m normal \033[4munderline\033[0m\r\n");