mirror of
https://github.com/neovim/neovim
synced 2025-07-17 09:41:46 +00:00
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.
This commit is contained in:
@ -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) {
|
||||
|
Reference in New Issue
Block a user