mirror of
https://github.com/kovidgoyal/kitty
synced 2026-06-08 22:28:24 +02:00
09e10fea85e35047130b4e7ae87844e475af4643
When toggling between alt and main screen buffers, the selection buffer (is_selected) was not always re-uploaded to the GPU. This caused a size mismatch because render_lines_for_screen depends on pixel_scroll_enabled, which depends on linebuf == main_linebuf. On alt screen, pixel_scroll is disabled so render_lines = screen->lines. On main screen, pixel_scroll is enabled so render_lines = screen->lines + 1. After switching from alt to main, the cell data buffer was re-uploaded with the larger size (is_dirty = true), but the selection buffer was not (screen_is_selection_dirty could return false if no selections/urls/extra cursors were active). The extra row of cells then read out-of-bounds from the selection buffer, getting garbage data that the shader interpreted as extra cursor shapes, producing blinking cursor-colored artifacts. Fix by unconditionally setting extra_cursors.dirty = true after screen toggle, ensuring the selection buffer is always re-uploaded with the correct size matching the cell data buffer. Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/daa73124-4795-4389-aea5-bb5593a26d9f Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
…
…
…
…
…
…
…
= kitty - the fast, feature-rich, cross-platform, GPU based terminal If you live in the terminal, *kitty* is made for **you**! See https://sw.kovidgoyal.net/kitty/[the kitty website]. image:https://github.com/kovidgoyal/kitty/workflows/CI/badge.svg["Build status", link="https://github.com/kovidgoyal/kitty/actions?query=workflow%3ACI"] https://sw.kovidgoyal.net/kitty/faq/[Frequently Asked Questions] To ask other questions about kitty usage, use either the https://github.com/kovidgoyal/kitty/discussions/[discussions on GitHub] or the https://www.reddit.com/r/KittyTerminal[Reddit community] Packaging status in various repositories: image:https://repology.org/badge/vertical-allrepos/kitty-terminal.svg?columns=3&header=kitty["Packaging status", link="https://repology.org/project/kitty-terminal/versions"]
Languages
Python
38.5%
C
28%
Go
26.4%
Objective-C
5.5%
Shell
1%
Other
0.5%