aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Anders <8965202+gpanders@users.noreply.github.com>2024-08-02 13:00:04 -0500
committerGitHub <noreply@github.com>2024-08-02 13:00:04 -0500
commitf32557ca679cbb1d7de52ab54dc35585af9ab9d0 (patch)
tree301c6e040d2caff54c649e2d62a2abed61ef54f9
parent0a0962a2e8d9ffa5f03e492fa293e964650a965e (diff)
downloadrneovim-f32557ca679cbb1d7de52ab54dc35585af9ab9d0.tar.gz
rneovim-f32557ca679cbb1d7de52ab54dc35585af9ab9d0.tar.bz2
rneovim-f32557ca679cbb1d7de52ab54dc35585af9ab9d0.zip
fix(tui): reset active attr ID when OSC 8 sequence is terminated (#29960)
When the cursor is moved we terminate any active OSC 8 sequences to prevent the sequence from inadvertently spanning regions it is not meant to span. However, if we do not also reset the TUI's active attr id (print_attr_id) then the TUI does not "know" that it's current attribute set has changed. When cursor_goto is called to wrap a line, the TUI does not recompute the attributes so the OSC 8 sequence is not restarted again. When we terminate an OSC 8 sequence before moving the cursor, also reset the active attr id so that the attributes are recomputed for URLs.
-rw-r--r--src/nvim/tui/tui.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c
index 0adf0712c0..d8b79fb193 100644
--- a/src/nvim/tui/tui.c
+++ b/src/nvim/tui/tui.c
@@ -888,6 +888,7 @@ static void cursor_goto(TUIData *tui, int row, int col)
if (tui->url >= 0) {
out(tui, S_LEN("\x1b]8;;\x1b\\"));
tui->url = -1;
+ tui->print_attr_id = -1;
}
if (0 == row && 0 == col) {