Skip to content

Conversation

@sreya
Copy link
Contributor

@sreya sreya commented Dec 4, 2025

Fix glyph clipping issue where complex scripts (like Devanagari कवि) would render on top of selection highlights. This happened because selection was drawn as a semi-transparent overlay after all text, causing z-order issues when adjacent rows were re-rendered for glyph overflow handling.

Fix glyph clipping issue where complex scripts (like Devanagari कवि) would
render on top of selection highlights. This happened because selection was
drawn as a semi-transparent overlay after all text, causing z-order issues
when adjacent rows were re-rendered for glyph overflow handling.

Changes:
- Integrate selection into renderCellBackground/renderCellText (like Ghostty)
- Use solid selection colors instead of semi-transparent overlay
- Add isInSelection() helper for efficient cell selection checking
- Cache selection coordinates at frame start for performance
- Remove separate renderSelection() overlay method
- Fix scrollbar fade animations not triggering re-renders
- Fix scrollbar ghosting by clearing scrollbar area before redraw
- Increase default scrollback from 1000 to 10000 lines (matches Ghostty)

This matches how native Ghostty handles selection rendering, where selected
cells have their fg/bg colors swapped rather than an overlay drawn on top.
@sreya sreya merged commit d9174e8 into main Dec 4, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant