From d54ce33afcd5e9875b53e4449ea3d2fd5c1ebc07 Mon Sep 17 00:00:00 2001 From: Leonard Hecker Date: Tue, 29 Aug 2023 18:47:26 +0200 Subject: [PATCH] Fix pattern coordinates to be viewport relative (#15892) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pattern tree coordinates are viewport-relative. Closes #15891 ## Validation Steps Performed * Print some text so the viewport scrolls down * Print a URL * URL is underlined on hover ✅ --- src/cascadia/TerminalCore/Terminal.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/cascadia/TerminalCore/Terminal.cpp b/src/cascadia/TerminalCore/Terminal.cpp index c4e6edc268..74f48697c8 100644 --- a/src/cascadia/TerminalCore/Terminal.cpp +++ b/src/cascadia/TerminalCore/Terminal.cpp @@ -1432,7 +1432,9 @@ PointTree Terminal::_getPatterns(til::CoordType beg, til::CoordType end) const do { auto range = ICU::BufferRangeFromMatch(&text, re.get()); - // PointTree uses half-open ranges. + // PointTree uses half-open ranges and viewport-relative coordinates. + range.start.y -= beg; + range.end.y -= beg; range.end.x++; intervals.push_back(PointTree::interval(range.start, range.end, 0)); } while (uregex_findNext(re.get(), &status));