core: when over a link we must set the whole screen dirty on move

This commit is contained in:
Mitchell Hashimoto
2024-07-04 20:10:34 -07:00
parent ff9ab70091
commit e8a8b189ba

View File

@ -2795,16 +2795,7 @@ pub fn cursorPosCallback(
if (self.mouse.link_point) |last_vp| { if (self.mouse.link_point) |last_vp| {
// Mark the link's row as dirty. // Mark the link's row as dirty.
if (over_link) { if (over_link) {
// TODO: This doesn't handle soft-wrapped links. Ideally this would self.renderer_state.terminal.screen.dirty.hyperlink_hover = true;
// be storing the link's start and end points and marking all rows
// between and including those as dirty, instead of just the row
// containing the part the cursor is hovering. This can result in
// a bit of jank.
if (self.renderer_state.terminal.screen.pages.pin(.{
.viewport = last_vp,
})) |pin| {
pin.markDirty();
}
} }
// If our last link viewport point is unchanged, then don't process // If our last link viewport point is unchanged, then don't process